UTC时间与Beijing时间转换工具

近来有很多童鞋渴望来一场激烈的CF(是Codeforces不是Cross Fire)来提升自己的实力,但是大家都知道,codeforces上公布的比赛时间都是UTC时间(协调世界时),可是没有关系,我们可以写一个小工具来方便完成时间转化。

Codeforces官网:http://codeforces.com/

 

 只要知道UTC time与Beijing time的转换关系,我们轻松完成这一转换任务(UTC time + 8 hours = Beijing time)

通过我们的转换小工具

UTC时间与Beijing时间转换工具_第1张图片

 

Code 

//UTC-time + 8 hours = Beijing-time
#include 
#include 

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;
}

 

你可能感兴趣的:(codeforces)