中级会员
 
- 积分
- 457
- 金钱
- 457
- 注册时间
- 2015-8-16
- 在线时间
- 116 小时
|
发表于 2016-8-5 01:01:12
|
显示全部楼层
//UTC时间转换为北京时间 void UTCToBeijing(unsigned int year,unsigned char month,unsigned char day,unsigned int hour,unsigned char minute,unsigned char second) { hour += 8; if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)//1,3,5,7,8,9,12月每月为31天 { if(hour >= 24) { hour -= 24;day += 1;//如果超过24小时,减去24小时,后再加上一天 if(day > 31){day -= 31;month += 1;}//如果超过31一天,减去31天,后加上一个月 } } else if(month==4||month==6||month==9||month==11)//4,6,9,11月每月为30天 { if(hour >= 24) { hour -= 24;day += 1;//如果超过24小时,减去24小时,后再加上一天 if(day > 30){day -= 30;month += 1;}//如果超过30一天,减去30天,后加上一个月 } } else//剩下为2月,闰年为29天,平年为28天 { if(hour >= 24) { hour -= 24;day += 1; if((year%400 == 0)||(year%4 == 0 && year%100 != 0))//判断是否为闰年,年号能被400整除或年号能被4整除,而不能被100整除为闰年 {if(day > 29){day -= 29;month += 1;}}//为闰年 else{if(day > 28){day -= 28;month += 1;}}//为平年 } } sprintf((char *)date_dtbuf,"%04d",year); OLED_ShowString(8,0,date_dtbuf,16,1); sprintf((char *)date_dtbuf,"%02d",month); OLED_ShowString(56,0,date_dtbuf,16,1); sprintf((char *)date_dtbuf,"%02d",day); OLED_ShowString(88,0,date_dtbuf,16,1); OLED_Show_Chinese(40,0,year_font,1,16,1);//显示汉字“年” OLED_Show_Chinese(72,0,month_font,1,16,1);//显示汉字“月” OLED_Show_Chinese(104,0,day_font,1,16,1);//显示汉字“日” sprintf((char *)time_dtbuf,"%02d:%02d:%02d",hour,minute,second); OLED_ShowString(0,16,time_dtbuf,16,1); Week_Show(year,month,day);//星期显示 OLED_Refresh_Gram(); }#在这里快速回复# |
|