输入第一行表示测试用例的个数m,接下来m行每行有3个用空格隔开的整数,分别表示年月日。测试数据不会有闰年。
输出m行。按xxxx-xx-xx的格式输出,表示输入日期的后一天的日期。
2 1999 10 20 2001 1 31
1999-10-21 2001-02-01
注意个位数日期前面要有0。
#include<iostream>
#include<cstdio>
//#define IsLeapYear(x) ((x%4==0&&x%100!=0)||(x%400==0)?1:0);
using namespace std;
const int daytab[13] = {
0,31,28,31,30,31,30,31,31,30,31,30,31
};
typedef struct date{
int year,month,day;
}Date;
int trans2num(Date x){
int number=0;
int month=x.month,day=x.day;
for(int i=0; i<month; i++){
number += daytab[i];
}
number += day;
return number;
}
int main(){
int plus;
int CaseNumber;
cin>>CaseNumber;
Date date_1;
while(CaseNumber--){
scanf("%04d %02d %02d",&date_1.year,&date_1.month,&date_1.day);
plus = trans2num(date_1)+1;
if(plus>365){
plus -= 365;
date_1.year += 1;
}
int month=0,day;
while(plus>daytab[month]){
plus -= daytab[month];
month ++;
}
day = plus;
printf("%04d-%02d-%02d\n",date_1.year,month,day);
}
return 0;
} #include<bits/stdc++.h>
int a[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
int main(){
int n,y,m,d;
while(scanf("%d",&n)!=EOF){
for(int i=0;i<n;i++){
scanf("%d %d %d",&y,&m,&d);
int t=d+1;
d=t%(a[m]+1);
if(d==0) d=1;
int tt=m+t/(a[m]+1);
m=(tt)%13;
if(m==0) m=1;
y=y+tt/13;
printf("%d-%02d-%02d\n",y,m,d);
}
}
}
#include<iostream>
using namespace std;
//区分闰年,平年中2月的区别,以及月末时期,年末时期的进位
void caculate(int year,int month,int day)
{
day += 1;
if(year % 400 == 0 ||(year % 4 == 0 && year % 100 != 0))
{
if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
{
if(day > 31)
{
day = 1;
month += 1;
if(month > 12)
{
year += 1;
month = 1;
}
}
}
else if(month == 2)
{
if(day > 29)
{
day = 1;
month += 1;
}
}
else
{
if(day > 30)
{
day = 1;
month += 1;
}
}
}
else
{
if(month == 1 || month == 3 || month == 5 || month == 7 || month == 8 || month == 10 || month == 12)
{
if(day > 31)
{
day = 1;
month += 1;
if(month > 12)
{
year += 1;
month = 1;
}
}
}
else if(month == 2)
{
if(day > 28)
{
day = 1;
month += 1;
}
}
else
{
if(day > 30)
{
day = 1;
month += 1;
}
}
}
cout << year << "-";
printf("%02d-%02d\n",month,day);//c的格式化输出右对齐宽度为2,不足用0补位
}
int main(void)
{
int m;
while(cin >> m)
{
while(m--)
{
int year,month,day;
cin >> year >> month >> day;
caculate(year, month, day);
}
}
return 0;
} #include<stdio.h>
int main()
{
int a[2][13]={{0,31,28,31,30,31,30,31,31,30,31,30,31},{0,31,28,31,30,31,30,31,31,30,31,30,31}};
int n,y,m,d,key;
scanf("%d",&n);
while(n--)
{
scanf("%d%d%d",&y,&m,&d);
key=0;
if(y%4==0&&y%100!=0||y%400==0) key=1;
d=d+1;
if(d>a[key][m])//月份加一
{ m=m+1;d=1; }
if(m>12)//年份加一
{ y=y+1;m=1;d=1; }
printf("%4d-%02d-%02d\n",y,m,d);
}
} #include <stdio.h>
int month_day[12]= {31,28,31,30,31,30,31,31,30,31,30,31};
int main() {
int m;
while(scanf("%d",&m)!=EOF) {
for(int i=0; i<m; i++) {
int year,month,day;
scanf("%d%d%d",&year,&month,&day);
int days=month_day[--month];
month+=day/days;
day%=days;
year+=month/12;
month%=12;
printf("%04d-%02d-%02d\n",year,month+1,day+1);
}
}
} #include <bits/stdc++.h>
using namespace std;
int main(){
int y,m,d,n;
cin>>n;
while(n--){
cin>>y>>m>>d;
switch(d){
case 28:
if(m==2) cout<<y<<"-0"<<m+1<<"-01"<<endl;
else
if(m<10)cout<<y<<"-0"<<m<<"-29"<<endl;
else cout<<y<<"-"<<m<<"-29"<<endl;
break;
case 30:
if(m==4||m==6) cout<<y<<"-0"<<m+1<<"-01"<<endl;
else if(m==9||m==11) cout<<y<<"-"<<m+1<<"-01"<<endl;
else if(m==12)cout<<y<<"-"<<m<<"-31"<<endl;
else cout<<y<<"-0"<<m<<"-31"<<endl;
break;
case 31:
if(m==12)
cout<<y+1<<"-01-01"<<endl;
else if(m==10)
cout<<y<<"-"<<m+1<<"-01"<<endl;
else
cout<<y<<"-0"<<m+1<<"-01"<<endl;
break;
default:
if(m<10){
if(d+1<10) cout<<y<<"-0"<<m<<"-0"<<d+1<<endl;
else cout<<y<<"-0"<<m<<"-"<<d+1<<endl;
}
else {
if(d+1<10) cout<<y<<"-"<<m<<"-0"<<d+1<<endl;
else cout<<y<<"-"<<m<<"-"<<d+1<<endl;
}
}
}
return 0;
}
#include<iostream>
#include<iomanip>
using namespace std;
int dayofmonth[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
class Data
{
int year;
int month;
int day;
public:
Data(int year=0, int month=0, int day=0)
{
this->year = year;
this->month = month;
this->day = day;
}
~Data() {};
void getdata()
{
day++;
if (day > dayofmonth[month])
{
day = 1;
month++;
if (month > 12)
{
year++;
}
}
cout << year << "-" << setfill('0') << setw(2) << month << "-" << setfill('0') << setw(2) << day << endl;
}
};
int main()
{
int n, year, month, day;
while (cin >> n)
{
Data *a[n];
for(int i=0;i<n;i++)//把数据全部输入,所以前面创建了指针数组指向每个类对象
{
cin >> year >> month >> day;
a[i] = new Data(year, month, day);
}
for (int i = 0; i < n; i++)a[i]->getdata();//再把要求的答案全部输出
}
return 0;
} #include <iostream>
#include <cstdio>
using namespace std;
int monDay[12]={31,28,31,30,31,30,31,31,30,31,30,31};
class Date
{
private:
int year,mon,day;
public:
void cal()
{
cin >> year >> mon >> day;
if(++day > monDay[mon-1])
{
mon++;
day=1;
if(mon > 12)
{
year++;
mon=1;
}
}
printf("%d-%02d-%02d\n",year,mon,day);
}
};
int main()
{
int m;
cin >> m;
while(m--)
{
Date x;
x.cal();
}
return 0;
}
#include<iostream>
using namespace std;
int main(){
int n;
cin>>n;
int table[12]={31,28,31,30,31,30,31,31,30,31,30,31};
while(n>0){
int y,m,d;
cin>>y>>m>>d;
if(d==table[m-1]&&m!=12){
m=m+1;
d=1;
}
else if(d==table[m-1]&&m==12){
y=y+1;
m=1;
d=1;
}
else
d=d+1;
if(m<10)
cout<<y<<"-0"<<m;
else
cout<<y<<"-"<<m;
if(d<10)
cout<<"-0"<<d<<endl;
else
cout<<"-"<<d<<endl;
n--;
}
}
#include<iostream>
#include<cstring>
using namespace std;
const int month[13] = { 0,31, 28,31,30,31,30,31,31,30,31,30,31 };
int fun(int year, int mon, int day) {
if (mon == 12 && day == 31) {
year++;
mon = day = 1;
}
else {
if (day < month[mon]) {
day++;
}
else {
mon++; day = 1;
}
}
printf("%04d-%02d-%02d\n", year, mon, day);
return 0;
}
int main() {
int m, year, mon, day;
while (cin >> m) {
for (int i = 0; i < m; i++) {
cin >> year >> mon >> day;
fun(year, mon, day);
}
}
return 0;
} #include <stdio.h>
int day[13] = {0, 31, -1, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
int main()
{
int m;
while(~scanf("%d", &m))
{
while(m--)
{
int y, m, d;
scanf("%d%d%d", &y, &m, &d);
if(y % 400 == 0 && (y % 4 == 0 && y % 100 != 0))
day[2] = 29;
else
day[2] = 28;
d++;
if(d == day[m] + 1)
{
m++;
d = 1;
if(m > 12)
{
y++;
m = 1;
}
}
printf("%04d-%02d-%02d\n", y, m, d);
}
}
} #include<iostream> using namespace std; int daytab[13] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 }; int main() { int caseNumber; scanf("%d", &caseNumber); int year, month, day; int newYear, newMonth, newDay; for (int i = 0; i < caseNumber; i++) { scanf("%d%d%d", &year, &month, &day); //除非输入日期是12月的最后一天,则第二天是新的一年 //否则,年份不变 if (month == 12 && day == 31) { newYear = year + 1; newMonth = 1; newDay = 1; printf("%04d-%02d-%02d\n", newYear, newMonth, newDay); continue; } else newYear = year; //排除本年度最后一天 //如果输入日期是本月份最后一天,则第二天是下一个月 //否则,月份不变 if (daytab[month] == day) { newYear = year; newMonth = month + 1; newDay = 1; printf("%04d-%02d-%02d\n", newYear, newMonth, newDay); continue; } else newMonth = month; //排除本年分最后一天和本月最后一天 //只需将天数加一即可 newDay = day + 1; printf("%04d-%02d-%02d\n", newYear, newMonth, newDay); } return 0; }
from datetime import datetime, timedelta,date
n = int(input())
while True:
try:
y, m, d = list(map(int, input().split()))
dt = datetime(y, m, d)
now = dt + timedelta(days=1)
print(now.strftime('%Y-%m-%d'))
except:
break #include <iostream>
#include "algorithm"
using namespace std;
int change(string str) {//字符串变数字
int res = 0;
for (auto a : str) {
res = res * 10 + a - '0';
}
return res;
}
string change2(int x){//数字变字符串
string res="";
while(x!=0){
res+=x%10;
x=x/10;
}
reverse(res.begin(),res.end());
return res;
}
int count_DayInMonth(int month) {//统计每个月有几天
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
return 31;
case 4:
case 6:
case 9:
case 11:
return 30;
case 2:
return 28;
default:
return -999;
}
}
int main() {
int m;
cin >> m;
for (int i = 0; i < m; i++) {
string year, month, day;
cin >> year >> month >> day;
if (month.size() == 1) {
month = "0" + month;
}
if (change(month) != 12){//如果不是12月份
if(change(day)!=count_DayInMonth(change(month))){//如果不是当月最后一天
int d = change(day)+1;//天数加1
if(change2(d).size()==1)//如果天数是一位数,前面补0
cout<<year<<"-"<<month<<"-0"<<d<<endl;
else//否则不用补0
cout<<year<<"-"<<month<<"-"<<d<<endl;
}else{//如果是当月最后一天
int m= change(month)+1;//月份加1
if(change2(m).size()==1)//如果月份是一位数,前面要补个0
cout<<year<<"-0"<<m<<"-"<<"01"<<endl;
else//否则不用补0
cout<<year<<"-"<<m<<"-"<<"01"<<endl;;
}
}else{//如果是12月份
if(change(day)!=count_DayInMonth(change(month))){//如果不是当月最后一天
int d = change(day)+1;//天数加1
if(change2(d).size()==1)//如果天数为一位数,则前面补0
cout<<year<<"-"<<month<<"-0"<<d<<endl;
else//否则不用补0
cout<<year<<"-"<<month<<"-0"<<d<<endl;
}else{//如果是当月最后一天,年份加1,月份和天数都重置为1
cout<<change(year)+1<<"-"<<"01"<<"-"<<"01"<<endl;
}
}
}
} #include <stdio.h>
#include <stdbool.h>
void nextDay(int year,int month,int day){
int dayOfMonth[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
bool isLeap = (year%400 == 0) || (year%4 ==0 && year%100 != 0);
if(isLeap) dayOfMonth[2] = 29;
day++;
if(day > dayOfMonth[month]){
day = 1;
month++;
}
if(month > 12){
month = 1;
year++;
}
printf("%04d-%02d-%02d\n",year,month,day);
}
int main(void){
int n;
scanf("%d",&n);
int year,month,day;
for(int i = 0; i < n; ++i){
scanf("%d%d%d",&year,&month,&day);
nextDay(year,month,day);
}
return 0;
} #include <iostream>
#include <cstdio>
using namespace std;
bool isleap(int x){
if(x%4==0&&x%100!=0||x%400==0) return true;
else return false;
}
int main() {
int n;
cin>>n;
int month[2][13]={
{0,31,28,31,30,31,30,31,31,30,31,30,31},
{0,31,29,31,30,31,30,31,31,30,31,30,31}
};
while(n--){
int y,m,d;
cin>>y>>m>>d;
int sum=d+1;
while(sum>month[isleap(y)][m]){
sum-=month[isleap(y)][m];
m++;
if(m>12){
y++;
m=1;
}
}
printf("%04d-%02d-%02d",y,m,sum);
cout<<endl;
}
} import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
// TODO 自动生成的方法存根
Scanner in = new Scanner(System.in);
int num = in.nextInt();
for (int i = 0; i < num; i++) {
int year = in.nextInt();
int month = in.nextInt();
int day = in.nextInt();
if (day == 30 && (month == 4 || month == 6 || month == 9 || month == 11)) {
month += 1;
day = 1;
} else if (day == 31 && (month == 1 || month == 3 || month == 5 || month == 7 ||
month == 8 || month == 10)) {
month += 1;
day = 1;
} else if (day == 31 && month == 12) {
year += 1;
month = 1;
day = 1;
} else if (day == 28 && month == 2) {
month += 1;
day = 1;
} else {
day += 1;
}
System.out.print(year);
if (month < 10) {
System.out.print("-0" + month);
} else {
System.out.print("-" + month);
}
if (day < 10) {
System.out.print("-0" + day);
} else {
System.out.print("-" + day);
}
System.out.println();
}
}
} #include <stdio.h>
int main() {
int n;
scanf("%d",&n);
int year[]={0,31,0,31,30,31,30,31,31,30,31,30,31};
while (n--) {
int y,m,d;
scanf("%d %d %d",&y,&m,&d);
if ((y%4==0&&y%100!=0)||y%400==0) {
year[2]=29;
}else {
year[2]=28;
}
d=d+1;
if (year[m]<d) {
d=1;
m=m+1;
if (m>12) {
m=1;
y=y+1;
}
}
printf("%4d-%02d-%02d\n",y,m,d);
}
return 0;
} #include<stdio.h>
int Months[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
bool IsRun(int year){
if((year%100!=0&&year%4==0)||(year%400==0)){
return true;
}else return false;
}
void nextDay(int &year,int &month,int &day){
int maxDay = Months[month];
if(month==2&&IsRun(year)) maxDay++;
if(day==maxDay){
if(month==12) { year++; month = 1; day =1;}
else {month++; day = 1;}
}else{
day ++;
}
}
int main(){
int N;
int y,m,d;
scanf("%d",&N);
for(int i=0;i<N;i++){
scanf("%d%d%d",&y,&m,&d);
nextDay(y,m,d);
printf("%d-",y);
if(m/10==0) printf("0");
printf("%d-",m);
if(d/10==0) printf("0");
printf("%d\n",d);
}
}