View Code of Problem 56

#include<stdio.h>

int main()
{
	int h1, m1, s1;
	int h2, m2, s2;
	int h, m, s;
	int flag;
	
	scanf("%d:%d:%d", &h1, &m1, &s1);
	scanf("%d:%d:%d", &h2, &m2, &s2);
	
	if(h1 > h2)
		flag = 1;
	else if(h1 < h2)
		flag = 2;
	else{
		if(m1 > m2)
			flag = 1;
		else if(m1 < m2)
			flag = 2;
		else{
			if(s1 > s2)
				flag = 1;
			else if(s1 < s2)
				flag = 2;
			else
				flag = 0;
		}
	}
	
	switch(flag){
		case 1:if(s1 >= s2)
					s = s1 - s2;
				else{
					s = s1 + 60 - s2;
					if(m1 != 0)
						m1--;
					else{
						m1 = 59;
						h1--;
					}
				}
				if(m1 >= m2)
					m = m1 - m2;
				else{
					m = m1 + 60 - m2;
					h1--;
				}
				h = h1 - h2;
				break;
				
		case 2:if(s2 >= s1)
					s = s2 - s1;
				else{
					s = s2 + 60 - s1;
					if(m2 != 0)
						m2--;
					else{
						m2 = 59;
						h2--;
					}
				}
				if(m2 >= m1)
					m = m2 - m1;
				else{
					m = m2 + 60 - m1;
					h2--;
				}
				h = h2 - h1;
				break;
			
		case 0:printf("0:00:00");
				break;
	}
	
	printf("%d:%02d:%02d", h, m, s);
	return 0;
}

Double click to view unformatted code.


Back to problem 56