时间求美国时间"/>
根据中国时间求美国时间
问题描述:
北京时间与美国时间相差16个小时,即美国时间比北京时间慢16小时,输入n组北京时间,求出对应的美国时间。
输入:22018 07 02 08 222018 07 01 08 21
输出:2018 07 01 16 222018 06 30 16 21
代码:
#include<iostream>
#include<stdio.h>using namespace std;int days[2][13]={{0,31,29,31,30,31,30,31,31,30,31,30,31},{0,31,28,31,30,31,30,31,31,30,31,30,31}};int isreap(int year){
if((year%4==0&&year%100!=0)||year%400==0){return 1;
}
else{return 0;
}
}void dif(int a[5]){
if(a[3]>=16){printf("%d %d %d %d %d",a[0],a[1],a[2],a[3],a[4]);
}
else{if(a[2]==1){if(a[1]>1){if(isreap(a[0])==1){a[2]=days[0][a[1]-1];a[1]=a[1]-1;}else{a[2]=days[1][a[1]-1];a[1]=a[1]-1;}}else{a[0]=a[0]-1;a[1]=12;a[2]=31;}}else{a[2]=a[2]-1;}printf("%d %d %d %d %d\n",a[0],a[1],a[2],(24-16+a[3]),a[4]);
}}int main(){
int n;
scanf("%d",&n);
while(n--){int a[5];scanf("%d%d%d%d%d",&a[0],&a[1],&a[2],&a[3],&a[4]);dif(a);}return 0;
}
更多推荐
根据中国时间求美国时间
发布评论