近来有很多童鞋渴望来一场激烈的CF(是Codeforces不是Cross Fire)来提升自己的实力,但是大家都知道,codeforces上公布的比赛时间都是UTC时间(协调世界时),可是没有关系,我们可以写一个小工具来方便完成时间转化。
Codeforces官网:http://codeforces.com/
只要知道UTC time与Beijing time的转换关系,我们轻松完成这一转换任务(UTC time + 8 hours = Beijing time)
通过我们的转换小工具
Code
//UTC-time + 8 hours = Beijing-time
#include <iostream>
#include <cstdio>
using namespace std;
int year, month, day, hour, minute;
int mon[] = {0, 31, 28, 31, 30, 31, 30, 31, 30, 30, 31, 30, 31};
bool LeapYear(int y)
{
if ((y % 4 == 0 && y % 100 != 0) || (y % 400 == 0)) return true;
else return false;
}
void solve()
{
if (LeapYear(month)) mon[2] = 29;
else mon[2] = 28;
if (hour == 24 && minute != 0)
{
day += 1;
hour = 0;
}
else if (hour > 24)
{
day += 1;
hour -= 24;
}
if (day > mon[month])
{
day -= mon[month];
month += 1;
}
if (month > 12)
{
year += 1;
month -= 12;
}
}
int main()
{
printf(" ---------------------------------------\n");
printf("|请输入您从Codeforces上获取的UTC比赛时间|\n");
printf("| 输入格式严格按照如下格式输入 |\n");
printf("| 月/日/年(12/09/2018) |\n");
printf("| 小时/分钟(16:05) |\n");
printf(" ---------------------------------------\n");
printf(">> ");
scanf("%d/%d/%d", &month, &day, &year);
printf(">> ");
scanf("%d:%d", &hour, &minute);
//printf("UTC-time:%d/%d/%d %02d:%02d\n", month, day, year, hour, minute);
hour += 8;
solve();
printf("<< Beijing Time:%d/%d/%d %02d:%02d\n", month, day, year, hour, minute);
return 0;
}