题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6308
题意:给你个北京时间,然后给你一个目标时区,然后让你求目标时区的时间。
题解:模拟没什么难度,但是有点常识得需要知道,北京是utf +8,然后这里面有28个时区(违反常识QAQ)。
还有就是他可能给你个小数时区。
嗯,模拟一下就过了
#include<bits/stdc++.h>
using namespace std;
int main(){
int s,f;
char s1[10];
int z;
cin >> z;
while(z--){
scanf("%d %d %s",&s,&f,s1);
int len = strlen(s1);
double start = s*60 + f;
// cout << start << endl;
double num = 0;;
int pos = 0;
for(int i = 4 ; i < len ; i ++){
if(s1[i] == '.'){
pos = i;
break;
}
num *= 10;
num += s1[i] -'0';
}
if(pos != 0 )
num +=(s1[pos+1]-'0' ) * 0.1;
// cout << num << endl;
num *= 60;
// cout << num << endl;
double temp = 8*60;
// cout << temp << endl;
if(s1[3] == '+'){
start += num;
start -= temp;
}
else {
start -= num;
start -= temp;
}
start += 60*24;
int aims = (int)(start/60)%24,aimf = (int)start%60;
printf("%02d:%02d\n",aims,aimf);
}
}