UTC时间转换北京时间 |
您所在的位置:网站首页 › UTC和北京时间换算 › UTC时间转换北京时间 |
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 |