Problem Description Chiaki often participates in international competitive programming contests. The time zone becomes a big problem.
Input There are multiple test cases. The first line of input contains an integer T (1≤T≤106 ), indicating the number of test cases. For each test case:
Output For each test, output the time in the format of hh:mm (24-hour clock).
Sample Input 3 11 11 UTC+8 11 12 UTC+9 11 23 UTC+0
Sample Output 11:11 12:12 03:23
Source 2018 Multi-University Training Contest 1
Recommend liuyiding |
#include <iostream>
#include <string.h>
using namespace std;
int main(){
int t;
scanf("%d",&t);
while(t--){
int h,m,d=0;
int s=0;
char c[10];
scanf("%d %d %s",&h,&m,c);
int w=4;
int f=0;
int len=strlen(c);
while(c[w]>='0' && c[w]<='9' && w<len){
s=s*10+c[w]-'0';
w++;
}
if(c[3]=='-'){
f=1;
}
if(c[w]=='.'){
w++;
while(c[w]>='0' && c[w]<='9' && w<len){
d=d*10+c[w]-'0';
w++;
}
}
if(f==1){
if(d!=0){
d=10-d;
s=16-s;
s--;
h=(24+s+h)%24;
if(h==-1)
h==23;
}
else{
s=16-s;
h=(24+s+h)%24;
}
}
else{
h=(24+(s-8)+h)%24;
}
m+=6*d;
if(m>=60){
m-=60;
h++;
h=h%24;
}
printf("%02d:%02d\n",h,m);
}
}