天勤OJ 题目1448: 日期累加
题目描述设计一个程序能计算一个日期加上若干天后是什么日期。
输入
输入第一行表示样例个数m,接下来m行每行四个整数分别表示年月日和累加的天数。
输出
输出m行,每行按yyyy-mm-dd的个数输出。
样例输入
1
2008 2 3 100
样例输出
2008-05-13
提示 [+]
*** 提示已隐藏,点击上方 [+] 可显示 ***
来源
北京理工大学计算机专业2008年研究生复试上机试题
[cpp]
/*********************************
* 日期:2013-2-16
* 作者:SJF0115
* 题号: 天勤OJ 题目1448: 日期累加
* 来源:
* 结果:AC
* 来源:北京理工大学计算机专业2008年研究生复试上机试题
* 总结:
**********************************/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//判断闰年
int leap_year(int year){
if((year%100 != 0 && year%4 == 0) || (year % 400 == 0)){
return 1;
}
else{
return 0;
}
}
//闰年
int Month[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31};
int main()
{
int n,i,j,year,month,day,days;
//freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin);
while(scanf("%d",&n) !=EOF){
for(i = 0;i < n;i++){
//输入每行四个整数分别表示年月日和累加的天数
scanf("%d %d %d %d",&year,&month,&day,&days);
//闰年2月29天
if(leap_year(year)){
Month[2] = 29;
}
else{
Month[2] = 28;
}
//从month月第一天开始计算
days = days + day;
for(j = month;j <= 13;j++){
//到了下一年
if(j == 13){
month = 1;
j = 1;
year ++;
if(leap_year(year)){
Month[2] = 29;
}
else{
Month[2] = 28;
}
}
//累加的天数不够这个月的
if(days > Month[j]){
days -= Month[j];
}
else{
month = j;
break;
}
}//for
//输出
printf("%d-%02d-%02d\n",year,month,days);
}
}
return 0;
}
/*********************************
* 日期:2013-2-16
* 作者:SJF0115
* 题号: 天勤OJ 题目1448: 日期累加
* 来源:
* 结果:AC
* 来源:北京理工大学计算机专业2008年研究生复试上机试题
* 总结:
**********************************/
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
//判断闰年
int leap_year(int year){
if((year%100 != 0 && year%4 == 0) || (year % 400 == 0)){
return 1;
}
else{
return 0;
}
}
//闰年
int Month[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31};
int main()
{
int n,i,j,year,month,day,days;
//freopen("C:\\Users\\SJF\\Desktop\\acm.txt","r",stdin);
while(scanf("%d",&n) !=EOF){
for(i = 0;i < n;i++){
//输入每行四个整数分别表示年月日和累加的天数
scanf("%d %d %d %d",&year,&month,&day,&days);
//闰年2月29天
if(leap_year(year)){
Month[2] = 29;
}
else{
Month[2] = 28;
}
//从month月第一天开始计算
days = days + day;
for(j = month;j <= 13;j++){
//到了下一年
if(j == 13){
month = 1;
j = 1;
year ++;
if(leap_year(year)){
Month[2] = 29;
}
else{
Month[2] = 28;
}
}
//累加的天数不够这个月的
if(days > Month[j]){
days -= Month[j];
}
else{
补充:软件开发 , C++ ,