输出样例第二组有问题,应为:
#include<stdio.h>
struct Time
{
int year;
int month;
int day;
int hour;
int minute;
}C,A;
int main()
{
int n;
scanf("%d",&n);
while(n--)
{
scanf("%d%d%d%d%d",&C.year,&C.month,&C.day,&C.hour,&C.minute);
A.minute=C.minute;
if(C.hour>=16)
{
A.year=C.year;
A.month=C.month;
A.day=C.day;
A.hour=C.hour-16;
}
else
{
if(C.day==1)
{
if(C.month==1)
{
A.year=C.year-1;
A.month=12;
A.day=31;
A.hour=C.hour+24-16;
}
if(C.month==2||C.month==4||C.month==6||C.month==8||C.month==9||C.month==11)
{
A.year=C.year;
A.month=C.month-1;
A.day=31;
A.hour=C.hour+24-16;
}
else if(C.month==5||C.month==7||C.month==10||C.month==12)
{
A.year=C.year;
A.month=C.month-1;
A.day=30;
A.hour=C.hour+24-16;
}
else if(C.month==3)
{
if(C.year%400==0||(C.year%100!=0&&C.year%4==0))
{
A.year=C.year;
A.month=C.month-1;
A.day=29;
A.hour=C.hour+24-16;
}
else
{
A.year=C.year;
A.month=C.month-1;
A.day=28;
A.hour=C.hour+24-16;
}
}
}
else
{
A.year=C.year;
A.month=C.month;
A.day=C.day-1;
A.hour=C.hour+24-16;
}
}
printf("%d %02d %02d %02d %02d\n",A.year,A.month,A.day,A.hour,A.minute);
}
return 0;
}