搜索
bottom↓
回复: 5

请教 gps 时间 ??

[复制链接]

出0入0汤圆

发表于 2013-7-16 17:41:00 | 显示全部楼层 |阅读模式

现在GPS接收到的时间, 小时加8后是显示的时间是与北京时间同步,
但是年、月、日 需要在每天早上8点后(加8后的时间)才跟新,请问这个有什么方法可以修改不????

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

发表于 2013-7-16 20:53:23 | 显示全部楼层
  1. #include <WinBase.h>
  2. #include <Windows.h>

  3. void UTCTime2LocalTime(void);
  4. bool IsLeapYear(unsigned int uiYear);

  5. void UTCTime2LocalTime(void)
  6. {
  7.         TIME_ZONE_INFORMATION tzi;
  8.         DWORD dwRet(GetTimeZoneInformation(&tzi));
  9.         int iTimeZone((0-tzi.Bias)/60);

  10.         printf("当前时区:%+-d\n",iTimeZone);

  11.         SYSTEMTIME st,st_l;
  12.         memset(&st,0,sizeof(SYSTEMTIME));
  13.         memset(&st_l,0,sizeof(SYSTEMTIME));

  14.         GetSystemTime(&st);
  15.         memcpy(&st_l,&st,sizeof(SYSTEMTIME));

  16.         //将UTC时间加上本地时区小时数
  17.         st_l.wHour += iTimeZone;

  18.         //根据加上时区后的时间刷新本地时间
  19.         //根据小时数判断日期是否需要进位
  20.         int iHourInterval(st_l.wHour/24);
  21.         st_l.wHour %= 24;
  22.         if(iHourInterval>0)
  23.         {
  24.                 //小时数已经大于24,日期需要加1
  25.                 st_l.wDay += 1;

  26.                 //小时数加1后继续判断天数是否需要加1
  27.                 //要根据当前月份判断
  28.                 int iDays(0);        //当月天数

  29.                 switch(st_l.wMonth)
  30.                 {
  31.                 case 1:
  32.                 case 3:
  33.                 case 5:
  34.                 case 7:
  35.                 case 8:
  36.                 case 10:
  37.                 case 12:
  38.                         {
  39.                                 iDays = 31;
  40.                         }
  41.                         break;
  42.                 case 2:
  43.                         {
  44.                                 //2月份比较特殊,需要根据是不是闰年来判断当月是28天还29天
  45.                                 iDays = IsLeapYear(st.wYear)?29:28;
  46.                         }
  47.                         break;
  48.                 case 4:
  49.                 case 6:
  50.                 case 9:
  51.                 case 11:
  52.                         {
  53.                                 iDays = 30;
  54.                         }
  55.                         break;
  56.                 }

  57.                 int iInterval(st_l.wDay-iDays);
  58.                 if(iInterval>0)
  59.                 {
  60.                         st_l.wDay = iInterval;
  61.                         st_l.wMonth += 1;

  62.                         //判断月份是否大于12,如果大于12,则年份需要再加1
  63.                         iInterval = st_l.wMonth/12;
  64.                         st_l.wMonth %= 12;
  65.                         if(iInterval>0)
  66.                         {
  67.                                 st_l.wYear += 1;
  68.                         }
  69.                 }
  70.         }

  71.         printf("当前 UTC 日期时间: %04d-%02d-%02d %02d:%02d:%02d\n",st.wYear,st.wMonth,st.wDay,st.wHour,st.wMinute,st.wSecond);
  72.         printf("当前 本地日期时间: %04d-%02d-%02d %02d:%02d:%02d\n",st_l.wYear,st_l.wMonth,st_l.wDay,st_l.wHour,st_l.wMinute,st_l.wSecond);

  73.         SYSTEMTIME st_cn;
  74.         GetLocalTime(&st_cn);
  75.         printf("当前 中国标准日期时间: %04d-%02d-%02d %02d:%02d:%02d\n",st_l.wYear,st_l.wMonth,st_l.wDay,st_l.wHour,st_l.wMinute,st_l.wSecond);
  76. }

  77. bool IsLeapYear(unsigned int uiYear)
  78. {
  79.         return (((uiYear%4)==0)&&((uiYear%100)!=0))||((uiYear%400)==0);
  80. }
复制代码

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x

出0入0汤圆

发表于 2013-7-16 21:16:26 | 显示全部楼层
UNIX时间戳。

出0入0汤圆

发表于 2013-7-16 21:43:38 | 显示全部楼层
学习一下,后面要用了

出0入0汤圆

 楼主| 发表于 2013-7-17 10:23:11 | 显示全部楼层
本帖最后由 hpdell 于 2013-7-17 10:32 编辑
renpeng009 发表于 2013-7-16 20:53


非常感谢感谢了啊

出0入0汤圆

发表于 2013-7-17 23:07:26 | 显示全部楼层
学习了,谢谢
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-18 21:19

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表