Coding & Programming/C, C++

[C/C++] 시간 간격 계산하기(calculate the time interval : scanf, strncpy, atoi functions

mainCodes 2021. 2. 28. 08:49

[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):

이상,  JollyTree 였습니다. 꾸벅. (•̀ᴗ•́)و