第二周----玩日期
来源:互联网 发布:宁波php招聘 编辑:程序博客网 时间:2024/04/30 17:43
/** Copyright (c) 2013, 烟台大学计算机学院* All rights reserved.* 作 者:申玉迪* 完成日期:2014 年 3 月 5 日* 版 本 号:v1.0* 问题描述:玩日期*/#include <iostream>using namespace std;struct Time{ int year; int month; int day; int hour; int minute; int second;} time;void tian()//该日是本年的第几天{ int days=0,i,x; for(i=0; i<time.month; ++i) { if(i==2) { if(time.year%400==0||(time.year%4==0&&time.year%100!=0)) { x=29; } else { x=28; } } if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) x=31; else if(i==4||i==6||i==9||i==11) x=30; else if(i==0) x=time.day; days=days+x; } cout<<"这是这一年的第"<<days<<"天."<<endl;}void miao()//这一秒是该日的第几秒{ int second; second=time.hour*3600+time.minute*60+time.second; cout<<"这是这一天的第"<<second<<"秒。"<<endl;}void fun()//求这一秒是本年的第几秒{ int days=0,i,x,second,S;//先算出该日是本年第几天和这一秒是本日的第几秒,然后就可以知道该秒是本年的第几秒了 for(i=0; i<time.month; ++i) { if(i==2) { if(time.year%400==0||(time.year%4==0&&time.year%100!=0)) { x=29; } else { x=28; } } if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) x=31; else if(i==4||i==6||i==9||i==11) x=30; else if(i==0) x=time.day; days=days+x; } second=time.hour*3600+time.minute*60+time.second; S=(days-1)*24*60*60+second; cout<<"这是这一年的第"<<S<<"秒"<<endl;}void wan()//输入d天后,是哪年哪月那日{ int i,j,d,x,days=0,month=1,day; cout<<"请输入天数:"; cin>>d; for(i=0; i<time.month; ++i) { if(i==2) { if(time.year%400==0||(time.year%4==0&&time.year%100!=0)) { x=29; } else { x=28; } } if(i==1||i==3||i==5||i==7||i==8||i==10||i==12) x=31; else if(i==4||i==6||i==9||i==11) x=30; else if(i==0) x=time.day; days+=x; } day=days+d; /*思想:看输入的日期是该年的第几天,然后加上d天后,在通过月份一点点减,月份 逢12,年份加一*/ while(day>=31) { for(j=2; j<=13; j++) { if(j==3) { if(time.year%400==0||(time.year%4==0&&time.year%100!=0)) { x=29; } else { x=28; } } if(j==2||j==4||j==6||j==8||j==9||j==11||j==13) x=31; else if(j==5||j==7||j==10||j==12) x=30; day=day-x; if(day<=0) { month=j-1; day=day+x; break; } if(j==13) { month=1; time.year++; break; } } } cout<<time.year<<"年"<<month<<"月"<<day<<"日"<<endl;}void bian()//输入s秒后,是何日何时{ int sec,s1; cout<<"请输入秒数:"; cin>>s1; sec=s1+time.second;//方法同上 while(sec>=60) { time.minute++; sec-=60; if(time.minute==60) { time.hour++; time.minute=0; } if(time.hour==24) { time.day++; time.hour=0; } if((time.month==1||time.month==3||time.month==5||time.month==7||time.month==8||time.month==10||time.month==12)&&time.day>31) { time.month++; time.day=1; } if((time.month==4||time.month==6||time.month==9||time.month==11)&&time.day>30) { time.month++; time.day=1; } if(time.month==2) { if(((time.year%400==0)||(time.year%4==0&&time.year%100!=0))&&time.day>29) { time.month++; time.day=1; } if(time.day>28) { time.month++; time.day=1; } } if(time.month>12) { time.year++; time.month=1; } } cout<<time.year<<"年"<<time.month<<"月"<<time.day<<"日"<<time.hour<<"时"<<time.minute<<"分"<<sec<<"秒"<<endl;}int main(){ cout<<"请输入一个时间:"; while(1) { cin>>time.year>>time.month>>time.day>>time.hour>>time.minute>>time.second; if(time.second<=60&&time.month<=12&&time.hour<24&&time.minute<60) { break; } cout<<"对不起,您输入的时间有误,请重新输入:"; } tian(); miao(); fun(); wan(); bian(); return 0;}
这个程序写了很长时间,不知道这个算法对不对,试了好多次才改成现在的样子,若有错误,还望指出.
0 0
- 第二周----玩日期
- 第二周项目5:玩日期
- 第二周 项目五:玩日期
- 第二周 项目五 玩转日期
- 第二周----玩日期(2)
- 第二学期第二周项目四--玩日期
- 第二周上机任务项目5-玩日期
- 第二周(项目四)——玩日期。
- 第二周上机实践项目——玩日期
- 玩日期,,,,
- 玩日期
- 玩日期
- 玩日期
- 玩日期
- 玩日期
- 玩日期
- 玩日期
- 玩日期
- 获取activity下的所有view
- Android基础和运行机制
- elf和AXF中头部信息分析
- 输入的日期是该年的第几天
- TCP/IP协议以及TCP状态机
- 第二周----玩日期
- 输入学生成绩,输出学生成绩
- 通俗例子详解Thread.sleep()
- 数字读取
- Ubuntu 12.04(32位)安装Oracle 11g(32位)全过程以及几乎所有问题的解决办法
- [Linux]C语言遍历文件和目录
- MachineLearning(Andrew)Week1
- codeforce 400 C
- 二周 项目3 文件+结构体实现使用功能