2015年4月30日 计算两个日期天数,目前为止写的最长的代码

  1 #include <stdio.h>
  2 #include <stdlib.h>
  3 #include <math.h>
  4 #define ISYEAR(year) (year%400==0) ||(year%4==0&&year%100!=0)
  5 int DayofYear(int year, int month, int day);
  6
  7
  8 int main(int argc, char *argv[])
  9 {
 10     int year1, month1, day1;
 11     int year2, month2, day2;
 12     int syear = 0,  sday = 0, deltdate = 0;
 13     int date1, date2, date;
 14     int mon1[] = {0,31,29,31,30,31,30,31,31,30,31,30,31}; //闰年二月29天
 15     int mon2[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
 16     int i;
 17     printf("输入第一个日期(例如:2010-1-17)");
 18     scanf("%d-%d-%d",&year1, &month1, &day1);
 19     //检查输入的日期是否合法
 20     if(year1<1){
 21         printf("年份非法,重新输入");
 22         scanf("%d-%d-%d",&year1, &month1, &day1);
 23     }
 24     else if(ISYEAR(year1)){
 25         if(month1<1||month1>12){
 26             printf("月份非法,重新输入");
 27             scanf("%d-%d-%d",&year1, &month1, &day1);
 28         }
 29         else{
 30         if(day1 > mon1[month1]||day1<1){
 31             printf("日期非法,重新输入");
 32             scanf("%d-%d-%d",&year1, &month1, &day1);
 33             }
 34         }
 35     }
 36     else {
 37         if(month1<1||month1>12){
 38             printf("月份非法,重新输入");
 39             scanf("%d-%d-%d",&year1, &month1, &day1);
 40             }
 41         else{
 42             if(day1 > mon2[month1]||day1<1){
 43                 printf("日期非法,重新输入");
 44                 scanf("%d-%d-%d",&year1, &month1, &day1);
 45                 }
 46             }
 47         }
 48     //getchar();
 49     printf("输入第二个日期(例如:2015-4-29)");
 50     scanf("%d-%d-%d",&year2, &month2, &day2);
 51     if(year2<1){
 52         printf("年份不合法,请重新输入");
 53         scanf("%d-%d-%d",&year2, &month2, &day2);
 54     }
 55     if(month2<1 || month2>12){
 56         printf("月份不合法,请重新输入");
 57         scanf("%d-%d-%d",&year2, &month2, &day2);
 58     }
 59     if(ISYEAR(year2)){
 60         if(day2>mon1[month2]||day2<1){
 61             printf("日期非法,请重新输入");
 62             scanf("%d-%d-%d",&year2, &month2, &day2);
 63         }
 64     }
 65     else{
 66         if(day2>mon2[month2]||day2<1){
 67             printf("日期非法,请重新输入");
 68             scanf("%d-%d-%d",&year2, &month2, &day2);
 69         }
 70     }
 71
 72     //分别计算两个日期距离当年1月1日的天数
 73     date1 = DayofYear(year1,month1,day1);
 74     date2 = DayofYear(year2,month2,day2);
 75     //默认year1<year2
 76     if(year1==year2){
 77         if(date1>date2)
 78             deltdate = date1 - date2;
 79         else
 80             deltdate = date2 - date1;
 81     }
 82     else if(year1<year2){
 83         for(i=year1;i<year2;i++){
 84             if(ISYEAR(i))
 85                 syear += 366;
 86             else
 87                 syear += 365;
 88         }
 89         deltdate  = syear - date1 + date2;
 90     }
 91     else{
 92         for(i=year1;i>year2;i--){
 93             if(ISYEAR(i))
 94                 syear += 366;
 95             else
 96                 syear += 365;
 97         }
 98         deltdate  = syear - date1 + date2;
 99     }
100
101     printf("\n%d年%d天%d日距离%d年%d天%d日相隔%d天.\n\n",year2,month2,day2,year1,month1,day1,deltdate);
102     system("pause");
103     return 0;
104 }
105
106
107 #define ISYEAR(year) (year%400==0) ||(year%4==0&&year%100!=0)
108
109 int DayofYear(int year, int month, int day)
110 {
111     int sum = 0;
112     int index = 0;
113     for(index=1;index<month;index++){
114         switch(index){
115         case 1:
116         case 3:
117         case 5:
118         case 7:
119         case 8:
120         case 10:
121         case 12:
122             sum += 31;
123             break;
124         case 2:
125             if(ISYEAR(year)){
126                 sum += 29;
127             }
128             else
129                 sum +=28;
130             break;
131         case 4:
132         case 6:
133         case 9:
134         case 11:
135             sum += 30;
136             break;
137
138         }
139     }
140     sum += day;
141     return sum;
142 }
时间: 2024-08-24 05:09:22

2015年4月30日 计算两个日期天数,目前为止写的最长的代码的相关文章

2015年9月30日的作业

2015年9月30日的作业:项目成本管理的重点知识: 成本失控的原因:1.成本估算与预算的工作不够细致与准确.2.成本估算与成本预算及成本控制的方法上没有统一的标准和规范可行. 3思想上存在误区,成本控制不好,认为成本超出预算再算难免. 包括成本估算,成本预算,成本控制三个过程. 成本估算:三个步骤:1.识别分析项目成本的构成科目. 2.估算每个科目的成本大小. 3.分析成本估算结果,协调各科目之间的比例关系.           输入:企业环境因素,组织过程资产,项目范围说明书,工作分解结构,

2015年8月30日课程作业(练习)

linux运维实战练习-2015年8月30日课程作业(练习)安排 一.作业(练习)内容: 1.总结文本编辑工具vim的使用方法: vim: 全屏幕的编辑器 编辑模式:命令模式 输入模式: 末行模式: 编辑模式 --> 输入模式: i: insert, 在光标所在在位置前可输入内容 a:append,在光标所在在位置后可输入内容 I: 行首,在光标所在在位置行首可输入内容 A:行尾,在光标所在在位置行尾可输入内容 O:在光标所在位置上方新建行,在行首可输入内容 o:new line,在光标所在位置

2015年9月30日作业及下次上课时间通知

2015年9月30日作业及下次上课时间通知 1.10月7日晚上的课,调到10月10日晚上!2.2015年9月30日作业:(1)梳理出今晚讲的项目成本管理的重点:(2)梳理出今晚讲的项目质量管理的重点:(3)梳理出今晚讲的项目人力资源管理的重点.字数不限,建议明天或后天提交,最晚提交时间:2015年10月10日前. 提交方法:同学们按照要求完成作业,并发布在自己的51CTO博客,并将博文地址以评论的形式发布在老师布置作业的评论区

张维为 - 中国震撼:一个”文明型国家“的崛起(2015年5月30日)

<中国震撼:一个”文明型国家“的崛起> 作 者:张维为译 者:系 列:出 版:上海人民出版社字 数:185千字阅读完成:2015年5月30日

2015年8月30日课程作业(练习)-JY1506402-19+liuhui880818

一.作业(练习)内容: 1.总结文本编辑工具vim的使用方法: 2.总结文件查找命令find的使用方法: 3.总结bash环境变量的相关内容: 4.总结Linux文件系统上的特殊权限(SUID.SGID.Sticky)的知识点: 5.总结Linux磁盘管理.文件系统相关知识点及其相关命令的使用方法: 6.复制/etc/grub.cfg配置文件至/tmp目录,用查找替换命令删除/tmp/grub.cfg文件中的行首的空白字符: 7.复制/etc/rc.d/init.d/functions文件至/t

linux运维实战练习-2015年8月30日课程作业(练习)安排

一.作业(练习)内容: 1.总结文本编辑工具vim的使用方法: 2.总结文件查找命令find的使用方法: 3.总结bash环境变量的相关内容: 4.总结Linux文件系统上的特殊权限(SUID.SGID.Sticky)的知识点: 5.总结Linux磁盘管理.文件系统相关知识点及其相关命令的使用方法: 6.复制/etc/grub.cfg配置文件至/tmp目录,用查找替换命令删除/tmp/grub.cfg文件中的行首的空白字符: 7.复制/etc/rc.d/init.d/functions文件至/t

2015年8月30日00:21:42

93年出生算算自己已经22岁了,人生算是失败了一部分了,至少现在是这么看来的.小学考试发成绩单的时候哭了一场,具体分数我也忘了应该是两课成绩都是80多分总分应该是160多分.到现在我还能记得当时老师念成绩的时候,老师眉头一皱的样子,感觉是很不理想.运气好的是当时保送了一所在我们市算的上是可以的初中,初中三年,闹过笑过疯过努力学过,结果是考上了家长觉得不错的高中.现在倒过来看只能说当时的眼光就那样了.高中三年,最大的收获就是现在的女朋友,结果是都读上了四川最好的专科学校,对最好的专科学校.也不错没

信息系统项目管理师2015年9月30日作业

一.项目成本管理 1.成本管理的过程:成本估算.成本预算.成本控制. 2.成本失控的原因: (1)成本估算和成本预算工作不够细致. (2)没有统一的标准和规范. (3)成本控制没作好. 3.成本估算的三个步骤: 识别并分析项目成本的构成科目:根据已识别的项目成本构成科目,估算每一成本科目的成本大小:分析成本估算结果,协调各种成本之间的比例关系. 4.成本预算的步骤: 将项目总成本分摊到项目工作分解结构的各个工作包上:将每个工作包分配得到的成本在二次分配到各项活动上:制定出项目成本预算计划. 3.

2015年4月30日

今天下午去机房把服务器托管,经历:办各种手续,架设服务器导轨,配置静态ip. 1.我用的系统是Centos6.5桌面版,配置网卡有两种方法:1)自己通过桌面上的网卡图标自己配置填写MAC和ipv4地址,填写学校的DNS服务器.2)通过在终端输入:vim /etc/sysconfig/network-scripts/ifcfg-eht0进行设置. 2.配置ip之后网络检测或者是出现网络不通查错的步骤:1)先ping 127.0.0.1,先检查TCP/IP协议栈是否正常 ;2)ping自己设置的ip