[C/C++] 시간 간격 계산하기(calculate the time interval : scanf, strncpy, atoi functions examples)
안녕하세요 JollyTree(•̀ᴗ•́)و입니다.
오늘은 입력한 두 시간 사이의 간격을 계산하는 프로그램을 작성해 보려고 합니다. 입력과 출력은 다음과 같습니다
[입력 & 출력]
첫 번째 줄에 시작 시간을 입력하고, 두 번째 줄에 종료 시간을 입력합니다. 입력은 hhmmss(175102)형태이며,
만약 175102를 입력했다면 이는 17시51분02초를 나타냅니다. 당연히 종료시간은 시작 시간보다 이후이어야 합니다.
입력 예시)
102153
211523
출력예시)
10:53:30
예제(Example):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <string.h>
#include <time.h>
#include <stdlib.h>
void main()
{
char time1[7];
char time2[7];
char tmp[3];
int hour, min, sec;
int tot_sec1, tot_sec2, tot_sec3;
int i;
for (i = 0; i < 2; i++)
{
scanf("%s", time1);
strncpy(tmp, &time1[0], 2);
hour = atoi(tmp);
strncpy(tmp, &time1[2], 2);
min = atoi(tmp);
strncpy(tmp, &time1[4], 2);
sec = atoi(tmp);
if (i == 0)
tot_sec1 = (hour * 3600) + (min * 60) + sec;
else
tot_sec2 = (hour * 3600) + (min * 60) + sec;
}
tot_sec3 = tot_sec2 - tot_sec1;
min = tot_sec3 / 60;
hour = min / 60;
min = min % 60;
sec = tot_sec3 % 60;
printf("%02d:%02d:%02d\n", hour, min, sec);
}
|
s |
실행결과(Output):
![](https://blog.kakaocdn.net/dn/AJRHq/btq1NtzrCRG/DbxdON7DBkPFCLkK00tX70/img.png)
이상, JollyTree 였습니다. 꾸벅. (•̀ᴗ•́)و