UTC时间转换北京时间

您所在的位置:网站首页 UTC和北京时间换算 UTC时间转换北京时间

UTC时间转换北京时间

2023-03-11 02:13| 来源: 网络整理| 查看: 265

UTC

时间转换北京时间

#include 

#include 

//UTC

时间转换为北京时间

_SysTime UTCToBeijing(_SysTime time)

{

uint16_t year=time.year+2000;

time.hour += 8;

if(time.month==1||time.month==3||time.month==5||time.month==7||time.month==8||time.month==10||time.month==12)//1,3,5,7,8,9,12

⽉每⽉为

31

{

if(time.hour >= 24) 

time.hour -= 24;time.day += 1;//

如果超过

24

⼩时,减去

24

⼩时,后再加上⼀天

if(time.day > 31){time.day -= 31;time.month += 1;}//

如果超过

31

⼀天,减去

31

天,后加上⼀个⽉

if(time.month > 12){time.month -= 12;year++;}//

如果超过

12

,

应该是

1

,

然后加上⼀年

}

}

else if(time.month==4||time.month==6||time.month==9||time.month==11)//4

6

9

11

⽉每⽉为

30

{

if(time.hour >= 24) 

time.hour -= 24;time.day += 1;//

如果超过

24

⼩时,减去

24

⼩时,后再加上⼀天

if(time.day > 30){time.day -= 30;time.month += 1;}//

如果超过

30

⼀天,减去

30

天,后加上⼀个⽉

}

}

else//

剩下为

2

⽉,闰年为

29

天,平年为

28

{

if(time.hour >= 24)

{

time.hour -= 24;time.day += 1;

if((year%400 == 0)||(year%4 == 0 && year%100 != 0))//

判断是否为闰年,年号能被

400

整除或年号能被

4

整除,⽽不能被

100

整除为闰年

{if(time.day > 29){time.day -= 29;time.month += 1;}}//

为闰年

else{if(time.day > 28){time.day -= 28;time.month += 1;}}//

为平年

}

}

time.year = year - 2000;

return time;

}

//

北京时间转换为

UTC

时间

_SysTime BeijingToUTC(_SysTime time)

{

uint16_t year=time.year+2000;

if(time.hour >= 8)//

如果⼩时⼤于等于

8

,

则减去⼩时即可

{

time.hour -= 8;

}

else

{

time.hour = time.hour + 24 - 8;time.day -= 1;//

如果时间⼩于

8

,

则时间是前⼀天

,

然后⽇减⼀

if(time.month==1||time.month==2||time.month==4||time.month==6||time.month==8||time.month==9||time.month==11)//1,2,4,6,8,9,11

⽉改成前⼀个⽉是

31

{

if(time.day == 0){time.day = 31;time.month -= 1;}//

如果⽇是

0,

则应该是上个⽉最后⼀天

,

⽇改为

31,

⽉减⼀

if(time.month == 0){time.month = 12;year--;}//

如果⽉为

0,

⽉就是

12

,

年减⼀

}

else if(time.month==5||time.month==7||time.month==10||time.month==12)//5,7,10,12

上个⽉是

30

{

if(time.day == 0){time.day = 30;time.month -= 1;}//

如果⽇是

0,

则应该是上个⽉最后⼀天

,

⽇改为

30,

⽉减⼀

}

else//

剩下为

3

⽉,上个⽉闰年为

29

天,平年为

28

{

if((year%400 == 0)||(year%4 == 0 && year%100 != 0))//

判断是否为闰年,年号能被

400

整除或年号能被

4

整除,⽽不能被

100

整除为闰年

{//

为闰年

if(time.day == 0)

{

time.day = 29;

time.month -= 1;

}

}

else

{//

为平年

if(time.day == 0)

{

time.day = 28;



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3