设为首页 加入收藏

TOP

C_求两个日期相隔的天数(闰年)
2018-10-21 20:10:29 】 浏览:83
Tags:两个日期 相隔 天数 闰年
 1 #include <stdio.h>
 2 #include <math.h>
 3 
 4 int leap_year(int year){
 5     if(year%400==0 || (year%4==0 && year%100!=0)){
 6         return 1;//是闰年
 7     }else{
 8         return 0;//不是闰年
 9     }
10 }
11 
12 int mon_d(int year,int mon){
13     int i, days = 0,mon_days[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
14     //for(i=1;i<mon;i++){
15         if(mon >= 2){
16             if(leap_year(year) == 1){
17                 mon_days[1] = 29;
18                 for(i=0; i<mon-1; i++){
19                      days += mon_days[i];        
20                 }
21                 return    days;
22             }else{
23                 for(i=0;i < mon-1;i++){
24                      days += mon_days[i];
25 
26                 }
27                 return days;
28             }
29         }        
30     //}
31     return 0;
32 }
33 
34 int main(){
35 
36     int y1, m1, d1, y2, m2, d2, i, y, day_to_day = 0;
37     printf("请您输入一个日期(eg:2008-8-8): ");
38 
39     scanf("%d-%d-%d",&y1,&m1,&d1);
40 
41     printf("请您再输入一个日期(eg:2008-8-8): ");
42     scanf("%d-%d-%d",&y2,&m2,&d2);
43     //printf("%d-%d-%d\n",y1,m1,d1);
44     //printf("%d-%d-%d\n",y2,m2,d2);
45 
46     y = y2-y1;
47 
48     if(y == 0){
49         day_to_day = mon_d(y2,m2) + d2 - (mon_d(y1,m1) + d1);
50     }else if(y == 1){
51         day_to_day = 365 + leap_year(y1) - ( mon_d(y1,m1) + d1 ) + mon_d(y2,m2) +d2;
52     }else{
53         for(i=y1+1; i<y2; i++){
54             day_to_day += 365 + leap_year(i);
55         }
56         day_to_day += 365 + leap_year(y1) - ( mon_d(y1,m1) + d1 ) + mon_d(y2,m2) +d2;;
57     }
58     printf("这两个日期相差的天数是: %d 天\n",day_to_day);
59 
60 }

 


编程开发网
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇一个博客萌新的C语言之旅(持续更.. 下一篇C_狐狸和兔子的故事

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

array(4) { ["type"]=> int(8) ["message"]=> string(24) "Undefined variable: jobs" ["file"]=> string(32) "/mnt/wp/cppentry/do/bencandy.php" ["line"]=> int(214) }