코드 짜는 티모

두 날짜 사이 일(DAY)수 계산 본문

코드 예시/C

두 날짜 사이 일(DAY)수 계산

나무뒤에티모 2018. 12. 5. 21:07
반응형

두 날짜를 입력받아 두 날짜 사이의 일수 계산

 

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
#include <stdio.h>
 long totalday(int y, int m, int d);
 int main(void)
 {
     while(1){
    int first;
     int fy, fm, fd, sy, sm, sd;
     long dates;
     scanf("%d",&first);
         
         if(first == 20000){
             printf("Bye");
             break;
         }
         fy = first/10000;
         fm = first%10000/100;
         fd = first%10000%100;
             
     scanf("%4d%2d%2d"&sy, &sm, &sd);
     if(fy*10000+fm*100+fd < sy*10000+sm*100+sd){
        dates=totalday(sy, sm, sd) - totalday(fy, fm, fd);
         printf("%d.%02d.%02d~%d.%02d.%02d=%ld\n", fy, fm, (char)fd, sy, sm, sd, dates);
     }
     else{
      dates=totalday(fy, fm, fd) - totalday(sy, sm, sd);
     printf("%d.%02d.%02d~%d.%02d.%02d=%ld\n", sy, sm, sd, fy, fm, fd, dates);     
     }
     }
 }
 long totalday(int y, int m, int d)
 {
     int months[]={312831303130313130313031};
     int i;
     long total=0L;
     total=(y-1)*365L+(y-1)/4-(y-1)/100+(y-1)/400;
     if(!(y%4&& y%100 || !(y%400))
         months[1]=29;
     for(i=0;i<m-1;i++)
     total += months[i];
     total+=d;
     return total;
 }
cs

 

 

간만에 해서 c언어 다 까먹었는데

scanf("%4d%2d%2d", &fy, &fm, &fd);

이렇게 입력받으면 굳이 입력받고 짜르지 않아도 됩니다~

여러개 스캔 가능 합니다~

반응형

'코드 예시 > C' 카테고리의 다른 글

입력받은 날짜의 다음날 요일 찾기  (0) 2018.12.05
Comments