
/* 田中 C言語 演習3 */

#include <stdio.h>

/* main関数の定義 */
int main(void)
{
	int a, b;										//自然数a,b
	int a1, a2, b1, b2;								//自然数a,bにおける「時」と「分」
	int tomorrow(int A1,int A2, int B1, int B2);	//bが翌日の時刻の場合に使用する関数
	int x, y;										//解答 x=時間、y=分


/* 自然数a,b(時刻)の標準入力 */
	printf("時刻を入力してください。(24時間表記で、0から2400の範囲内)\n");
	scanf("%d", &a);

	printf("時刻を入力してください。(24時間表記で、0から2400の範囲内)\n");
	scanf("%d", &b);

/* 自然数a,b(時刻)を「時」と「分」に分割 */
	a1 = a / 100;
	a2 = a - a1 * 100;
	b1 = b / 100;
	b2 = b - b1 * 100;


/* 入力した時刻の確認 */
	printf("%d時%d分と%d時%d分が入力した時刻です。\n", a1, a2, b1, b2);


/* bが翌日の時刻であるか判断を行い、当日同士の場合に時間差を計算 */
	if(b1 < a1){
		tomorrow (a1, a2, b1, b2);
	}
	else if(a1 = a2 && b2 > a2){
		tomorrow (a1, a2, b1, b2);
	}
	else{
				printf("a1は%dです。\n", a1);
		x = b1 - a1;
		y = b2 - a2;
		if(a2 > b2){
			x -= 1;		//分の計算で繰り下げが発生する場合の対応
			y += 60;	//分の計算で繰り下げが発生する場合の対応
		}
		printf("時刻の差は%d時間%d分です。\n", x, y);
	}

	return 0;
}

/* b<a(bが翌日の時刻を表す)の場合の計算 */
	int tomorrow (int A1,int A2, int B1, int B2)
	{
		int x, y;		//解答 x=時間、y=分
		printf("%d時%d分は翌日の時刻として扱います。\n", B1, B2);
		x = (24 - A1) + B1;
		y = (60 - A2) + B2;
		if(A2 > B2)		//分の計算で繰り下げが発生する場合の対応
			x -= 1;
		printf("時刻の差は%d時間%d分です。\n", x, y);
		return 0;
	}