#include <iostream>
using namespace std;
struct time {
unsigned int year;
unsigned int month;
unsigned int day;
unsigned int hour;
unsigned int min;
unsigned int sec;
}nowtime;
int main(void)//void main的规范写法
{
cout << "please input year: " << endl;
cin >>nowtime.year;
cout << "please input month: " << endl;
while(1){
cin >>nowtime.month;
if(nowtime.month>12||nowtime.month<1)
cout<<"请重新输入正确的月份!"<<endl;
else break;
}
cout << "please input day: " << endl;
while(1){
cin >>nowtime.day;//重要部分
if((nowtime.year%400==0||(nowtime.year%4==0 && nowtime.year%100!=0)) && (nowtime.month==2&&(nowtime.day>29||nowtime.day<1)))//闰年
cout<<"请重新输入正确的天数!"<<endl;
else if((nowtime.year%400!=0||(nowtime.year%4!=0 && nowtime.year%100==0)) && (nowtime.month==2&&(nowtime.day>28||nowtime.day<1)))//前半段实现非闰年
cout<<"请重新输入正确的天数!"<<endl;
else break;
}
cout << "please input hour: " << endl;
while(1){
cin >>nowtime.hour;
if(nowtime.hour>24||nowtime.hour<0)
cout<<"请重新输入正确的小时!"<<endl;
else break;
}
cout << "please input min: " << endl;
while(1){
cin >>nowtime.min;
if(nowtime.min>60||nowtime.min<0)
cout<<"请重新输入正确的时分!"<<endl;
else break;
}
cout << "please input sec: " << endl;
while(1){
cin >>nowtime.sec;
if(nowtime.sec>60||nowtime.sec<1)
cout<<"请重新输入正确的秒!"<<endl;
else break;
}
cout<<"The bjtime is:"<<nowtime.year<<"/"<<nowtime.month<<"/"<<nowtime.day;
cout<<" "<<nowtime.hour<<":"<<nowtime.min<<":"<<nowtime.sec<<endl;
}
请问为什么这个函数无法判断1888为闰年且2月份无法输入成功为29天?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- CSDN专家-link 2022-03-30 19:49关注
else if((nowtime.year%400!=0||(nowtime.year%4!=0 && nowtime.year%100==0)) && (nowtime.month==2&&(nowtime.day>28||nowtime.day<1)))//前半段实现非闰年
这个非闰年判断是错误的,并不是上面闰年判断的取反啊
闰年判断是if(nowtime.year%400==0||(nowtime.year%4==0 && nowtime.year%100!=0)
那么非闰年应该是 if(nowtime.year %400 != 0 && (nowtime.year % 4 != 0 || nowtime.year %100 == 0))本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 python的qt5界面
- ¥15 无线电能传输系统MATLAB仿真问题
- ¥50 如何用脚本实现输入法的热键设置
- ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
- ¥30 深度学习,前后端连接
- ¥15 孟德尔随机化结果不一致
- ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
- ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
- ¥15 谁有desed数据集呀
- ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100