DreamJudge-1051-日期计算
1.题目介绍
Time Limit: 1000 ms
Memory Limit: 256 mb
定义一个结构体变量(包括年、月、日),编程序,要求输入年月日,计算并输出该日
在本年中第几天。
输入输出格式
输入描述:
输入三个整数(并且三个整数是合理的,既比如当输入月份的时候应该在1 至12 之间,
不应该超过这个范围)否则输出Input error!
多组测试数据输入
输出描述:
输出一个整数.既输入的日期是本年的第几天。
输入输出样例
输入样例#:
1985 1 20
2006 3 12
输出样例#:
20
71
题目来源
中南大学机试题
2.题解
2.1 日期计算
思路
注意下合法性检查即可
代码
#include<bits/stdc++.h>
using namespace std;
vector<int> f{0,31,28,31,30,31,30,31,31,30,31,30,31};
bool isLeapYear(int year){
if(year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) return true;
return false;
}
bool isVaildDate(int month, int day){
if(month > 12 || month < 1) return false;
if(day < 1 || day > f[month]) return false;
return true;
}
int main(){
int year, month, day, date;
while(cin >> year >> month >> day){
if(!isVaildDate(month, day)){
printf("Input error!\n");
continue;
}
date = 0;
f[2] == isLeapYear(year)?29:28;
for(int i = 1; i < month; i++){
date += f[i];
}
date += day;
printf("%d\n", date);
}
return 0;
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了