日历计算问题c语言_第1页
日历计算问题c语言_第2页
日历计算问题c语言_第3页
日历计算问题c语言_第4页
日历计算问题c语言_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、/*题目编号:3 题目名称:日历计算问题 姓名:陈振孝 学号:46*/#include<stdio.h>#include<stdlib.h>#include<math.h>struct date int year; int month; int day;void frontdate(int ,int,int,int);void backdate(int ,int ,int,int);int monthday(int,int );void zhiding( );int main()printf("|*|n"); printf("|

2、 请输入选项编号(03) |n");printf("|*|n");printf("| |n");printf("| 1-向前数日 |n");printf("| 2-向后数日 |n");printf("| 3-指定数日 |n");printf("| 0-退出 |n");printf("| |n");printf("|*|n");while(1)int year,month,day;int n,nn; printf("请

3、输入选择序号:t"); scanf("%d",&nn); if(nn=0)break; if(nn=1) printf("请输入年 月 日(中间用空号隔开)和向前的天数:n"); scanf("%d%d%d%d",&year,&month,&day,&n); if(nn=2) printf("请输入年 月 日(中间用空号隔开)和向后的天数:n"); scanf("%d%d%d%d",&year,&month,&day,&a

4、mp;n); switch(nn)case 1:frontdate(year,month,day,n);break;case 2:backdate(year,month,day,n);break;case 3: zhiding();break;case 0:exit(-1);break;return 0;/*判断大小月份的日数*/int monthday(int y2,int m2)int day;if(m2=2)if(y2%4=0&&y2%100!=0|y2%400=0)day=29;elseday=28; if(m2=1|m2=3|m2=5|m2=7|m2=8|m2=10|

5、m2=12)day=31;if(m2=4|m2=5|m2=6|m2=9|m2=11)day=30; return day;/*向前指点*/void frontdate(int y1,int m1,int d1,int n) int i,d2; if(n<d1) d1=d1-n; if(n=d1) d1=monthday(y1,m1-1); m1=m1-1; if(n>d1) n=n-d1; for(i=m1-1;i>=0;-i) if(i=0) y1=y1-1; i=12; d2=monthday(y1,i); if(n<d2) d1=d2-n; m1=i; break

6、; if(n=d2) d2=monthday(y1,i-1); d1=d2; m1=i-1; break; if(n>d2) n=n-d2; printf("向前%d日后的时期是:t",n); printf("%d年 %d月 %d日nn",y1,m1,d1);/*向后数日*/void backdate(int y1 ,int m1 ,int d1,int n) int i; for(i=1;i<=n;i+) if(monthday(y1,m1)=d1) m1+=1; if(m1=12) y1+=1; m1=1; d1=1; else d1+;

7、 printf("向后%d日后的时期是:t",n); printf("%d年 %d月 %d日nn",y1,m1,d1);/*指定某日*/void zhiding() struct date date1,date2; int days,days1=0,days2=0; int daytab=0,31,28,31,30,31,30,31,31,30,31,30,31; int i; printf("请输入基准日期( 年 月 日):n"); scanf("%d%d%d",&date1.year,&date

8、1.month,&date1.day); printf("请输入指定日期( 年 月 日):n"); scanf("%d%d%d",&date2.year,&date2.month,&date2.day); for(i=0;i<date1.month;i+) days1 += daytabi; if(date1.year%4=0&&date1.year%100!=0)|(date1.year%400=0) && date1.month>2) days1+; days1 += dat

9、e1.day; if(date1.year<=date2.year) for(i=date1.year;i<date2.year;i+) days2 += 365; if(i%4=0&&i%100!=0)|(i%400=0) days2+; else for(i=date2.year;i<date1.year;i+) days1 += 365; if(i%4=0&&i%100!=0)|(i%400=0) days1+; for(i=0;i<date2.month;i+) days2 += daytabi; if(date2.year%4=0&&date2.year%100!=0)|(date2.year%400=0) && date2.month>2) days2 +; days2 += date2.day; days=abs(days2-days1); printf("到指定的日子还有%d天nn",days); /*测试举例: |*| 请输入选项编号(03) |*| | 1-向前数日 | 2-向后数日 | 3-指定数日 | 0-退出 | |*|请输入选择序号:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论