第17周 项目5 玩日期时间
2014-12-23 16:26
169 查看
问题及代码:
运行结果:
/*。 *Copyright(c)2014,烟台大学计算机学院 *All right reserved, *文件名:test.cpp *作者:liu_feng_zi_ *完成日期:2014年12月23日 *版本号:v1.0 * 问题描述:完成以下要求: (1)输入一个时间点; (2)输入是本年第几天; (3)输出是这一天的第几秒; (4)输出是这一年的第几秒; (5)求输入一个天数后是哪年哪月哪日,并将结果保存在一个结构体中; (6)求输入一个秒数后是哪年哪月哪日哪时哪分哪秒,并将结果保存在一个结构体中; (7)输入两个时间点,求相差多少天,相差多少秒 *输入描述: *程序输出: */ #include <iostream> using namespace std; int many1(int y,int m,int d); int many2(int h,int m,int s); int many3(int d,int s); void many4(int y,int m,int d,int t); void many5(int y,int mon,int d,int h,int minu,int s,int t); void many6(int x,int y,int y1,int h1,int m1,int s1,int y2,int h2,int m2,int s2); int main() { struct Time { int year; int month; int day; int hour; int minute; int second; } time1,time2,time3; cout<<"请输入年、月、日、时、分、秒:"<<endl; cin>>time1.year>>time1.month>>time1.day; cin>>time1.hour>>time1.minute>>time1.second; int days; days=many1(time1.year,time1.month,time1.day); cout<<"这是本年的第"<<days<<"天"<<endl; int seconds; seconds=many2(time1.hour,time1.minute,time1.second); cout<<"这是本天的第"<<seconds<<"秒"<<endl; int Yseconds; Yseconds=many3(days,seconds); cout<<"这是本年的第"<<Yseconds<<"秒"<<endl; int day; cout<<"请输入一个天数:"; cin>>day; cout<<time1.year<<"年"<<time1.month<<"月"<<time1.day<<"日"; cout<<"的"<<day<<"天后是"; many4(time1.year,time1.month,time1.day,day); int second; cout<<"输入一个秒数:"; cin>>second; cout<<time1.year<<"年"<<time1.month<<"月"<<time1.day<<"日"; cout<<time1.hour<<"时"<<time1.minute<<"分"<<time1.second<<"秒"; cout<<"的"<<second<<"秒后是"; many5(time1.year,time1.month,time1.day,time1.hour,time1.minute,time1.second,second); int d1,d2; cout<<"输入第一个时间点:"; cin>>time2.year>>time2.month>>time2.day; cin>>time2.hour>>time2.minute>>time2.second; cout<<"输入第二个时间点:"; cin>>time3.year>>time3.month>>time3.day; cin>>time3.hour>>time3.minute>>time3.second; d1=many1(time2.year,time2.month,time2.day); d2=many1(time3.year,time3.month,time3.day); many6(d1,d2,time2.year,time2.hour,time2.minute,time2.second,time3.year,time3.hour,time3.minute,time3.second); return 0; } int many1(int y,int m,int d) { int i,sum=0; for(i=1; i<m; i++) { if(i==4||i==6||i==9||i==11) sum+=30; if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) sum+=31; if(i==2) { if((y%4==0&&y%100!=0)||y%400==0) sum+=29; else sum+=28; } } sum+=d; return sum; } int many2(int h,int m,int s) { int sum; h*=3600; m*=60; sum=h+m+s; return sum; } int many3(int d,int s) { int sum; d=(d-1)*86400; sum=d+s; return sum; } void many6(int x,int y,int y1,int h1,int m1,int s1,int y2,int h2,int m2,int s2) { int d,m,n,t,s; m=h1*36void many4(int y,int m,int d,int t) { struct Time { int year; int month; int day; } time; int i,r,n; n=t/365; r=t%365; for(i=1; i<=n; i++) { if((y%4==0&&y%100!=0)||y%400==0) r--; y++; } if(r<0) { d+=r; if(d<=0) { if(m==4||m==6||m==9||m==11) d+=30; if(m==1||m==3||m==5||m==7||m==8||m==10||m==12) d+=31; if(m==2) { if((y%4==0&&y%100!=0)||y%400==0) d+=29; else d+=28; } m--; } time.year=y; time.month=m; time.day=d; } else { d+=r; while((m!=2&&d>28)||(d>31)) { m++; if(m==13) { y++; m=1; } if(m==4||m==6||m==9||m==11) d-=30; if(m==1||m==3||m==5||m==7||m==8||m==10||m==12) d-=31; if(m==2) { if((y%4==0&&y%100!=0)||y%400==0) d-=29; else d-=28; } time.year=y; time.month=m; time.day=d; } } cout<<time.year<<"年"<<time.month<<"月"<<time.day<<"日"<<endl; } void many5(int y,int mon,int d,int h,int minu,int s,int t) { struct Time { int year; int month; int day; int hour; int minute; int second; } time; int n,r,a,p; t+=s; s=0; a=t/86400; d+=a; if(a!=0) { while((mon!=2&&d>28)||(d>31)) { mon++; if(mon==13) { y++; mon=1; } if(mon==4||mon==6||mon==9||mon==11) d-=30; if(mon==1||mon==3||mon==5||mon==7||mon==8||mon==10||mon==12) d-=31; if(mon==2) { if((y%4==0&&y%100!=0)||y%400==0) d-=29; else d-=28; } } } p=t%86400; r=p/3600; h+=r; n=p%3600; r=n/60; minu+=r; r=n%60; s+=r; time.year=y; time.month=mon; time.day=d; time.hour=h; time.minute=minu; time.second=s; cout<<time.year<<"年"<<time.month<<"月"<<time.day<<"日"; cout<<time.hour<<"时"<<time.minute<<"分"<<time.second<<"秒"<<endl; } 00+m1*60+s1; n=h2*3600+m2*60+s2; if(y1>y2) { t=(y1-y2)*365; d=x-y+t; } else if (y1==y2) { if(x>=y) d=x-y; else d=y-x; } else { t=(y2-y1)*365; d=y-x+t; } if(d!=0) s=m-n+d*86400; else { if(m>=n) s=m-n; else s=n-m; } cout<<"两时间点相差"<<s<<"秒"<<endl; cout<<"两时间点相差"<<d<<"天"<<endl; }
运行结果:
相关文章推荐
- 第17周项目5-玩日期时间(部分)
- 第17周项目5-玩日期时间(部分)
- 第17周上机实践项目5——玩日期时间(3)
- 第17周项目5-玩日期时间
- 第17周项目5-玩时间日期
- 第17周项目5 玩日期时间
- 第17周项目5-玩日期时间(v1.0)
- 第17周项目5-玩日期时间
- 第17周项目5--玩日期时间
- 第17周项目5-玩日期时间
- 第17周上机实践项目5——玩日期时间(1)(2)
- 第17周上机实践项目5——玩日期时间(4)
- 第17周项目5-玩日期时间
- 第17周 项目5-玩日期时间
- 第17周【项目 5-玩日期时间】
- 第17周项目5--玩日期时间(两个日期天数之差,秒数之差)
- 2014秋C++第17周 项目5参考 玩日期时间
- 第17周项目5-玩日期时间
- 第17周项目4(2)-日期结构体
- 关于Web项目里的给表单验证控件添加结束时间不得小于开始时间的验证方法,日期转换和前台显示格式之间,还有JSON取日期数据格式转换成标准日期格式的问题