国际时间按时区索引号转换
typedef struct{int year; int month; int day;int hour;int minute;int second;int millisecond;
}DATE_TIME;typedef struct{DATE_TIME D; //时间char status; //接收状态double latitude; //纬度double longitude; //经度char NS; //南北纬char EW; //东西经double speed; //速度double high; //高度
}GPS_INFO;typedef struct{BYTE ucTimeZone; //时区编号INT addOrSub; //时间加减INT hour; //时INT minute; //分
}T_TimeZoneOffset; /*时区对应偏移量*/T_TimeZoneOffset gTimeZoneOffsetTable[] =
{{0 ,-1,12,00},{2 ,-1,11,00},{4 ,-1,10,00},{6 ,-1,9 ,00},{8 ,-1,8 ,00},{10,-1,7 ,00},{12,-1,6 ,00},{14,-1,5 ,00},{15,-1,4 ,30},{16,-1,4 ,00},{17,-1,3 ,30},{18,-1,3 ,00},{20,-1,2 ,00},{22,-1,1 ,00},{24, 0,0 ,00},{26,+1,1 ,00},{28,+1,2 ,00},{30,+1,3 ,00},{31,+1,3 ,30},{32,+1,4 ,00},{33,+1,4 ,30},{34,+1,5 ,00},{35,+1,5 ,30},{51,+1,5 ,45},{36,+1,6 ,00},{37,+1,6 ,30},{38,+1,7 ,00},{40,+1,8 ,00},{42,+1,9 ,00},{43,+1,9 ,30},{44,+1,10,00},{46,+1,11,00},{48,+1,12,00},{50,+1,13,00},
};VOID BspConvertTimeToLocal(BYTE ucTimeZoneIndex, DATE_TIME *GPS)
{WORD32 dwLoop;INT sPn = 0;INT hour = 0;INT minute = 0;/*时区查找*/for(dwLoop=0; dwLoop<sizeof(gTimeZoneOffsetTable)/sizeof(T_TimeZoneOffset); dwLoop++){if(ucTimeZoneIndex == gTimeZoneOffsetTable[dwLoop].ucTimeZone){sPn = gTimeZoneOffsetTable[dwLoop].addOrSub;hour = gTimeZoneOffsetTable[dwLoop].hour;minute = gTimeZoneOffsetTable[dwLoop].minute;break;}}if(sPn >= 0) //东部时区{/*分处理*/gpsInfo.D.minute = gpsInfo.D.minute + minute;if(gpsInfo.D.minute>59){gpsInfo.D.minute -= 60;gpsInfo.D.hour++;}/*时处理*/gpsInfo.D.hour = gpsInfo.D.hour + hour;if(gpsInfo.D.hour>23){gpsInfo.D.hour-=24;gpsInfo.D.day+=1;if(gpsInfo.D.month==2 ||gpsInfo.D.month==4 ||gpsInfo.D.month==6 ||gpsInfo.D.month==9 ||gpsInfo.D.month==11 ){if(gpsInfo.D.day>30){ //上述几个月份是30天每月,2月份还不足30gpsInfo.D.day=1;gpsInfo.D.month++;}}else{if(gpsInfo.D.day>31){ //剩下的几个月份都是31天每月gpsInfo.D.day=1;gpsInfo.D.month++;}}if(gpsInfo.D.year % 4 == 0 ){//if(gpsInfo.D.day > 29 && gpsInfo.D.month ==2){ //闰年的二月是29天gpsInfo.D.day=1;gpsInfo.D.month++;}}else{if(gpsInfo.D.day>28 &&gpsInfo.D.month ==2){ //其他的二月是28天每月gpsInfo.D.day=1;gpsInfo.D.month++;}}if(gpsInfo.D.month>12){gpsInfo.D.month-=12;gpsInfo.D.year++;} }}else //西部时区{/*分处理*/gpsInfo.D.minute = gpsInfo.D.minute - minute;if(gpsInfo.D.minute<0){gpsInfo.D.minute += 60;gpsInfo.D.hour--;}/*时处理*/gpsInfo.D.hour = gpsInfo.D.hour - hour;if(gpsInfo.D.hour<0){gpsInfo.D.hour+=24;gpsInfo.D.day--;if(gpsInfo.D.day <= 0){gpsInfo.D.month--;if (gpsInfo.D.month==1 ||gpsInfo.D.month==3 ||gpsInfo.D.month==5 ||gpsInfo.D.month==7 ||gpsInfo.D.month==8||gpsInfo.D.month==10){gpsInfo.D.day = 31;}else if (gpsInfo.D.month==4 ||gpsInfo.D.month==6 ||gpsInfo.D.month==9 ||gpsInfo.D.month==11){gpsInfo.D.day = 30;}else if (gpsInfo.D.month==2){if(gpsInfo.D.year % 4 == 0 ) //闰年的二月是29天{gpsInfo.D.day = 29;}else //其他的二月是28天每月{gpsInfo.D.day = 28;}}else /*month=0,year--,month=12*/{gpsInfo.D.day = 31;gpsInfo.D.month = 12;gpsInfo.D.year--;}}}}}
国际时间按时区索引号转换相关推荐
- 转linux时间,Linux 时区、时间设置和转换
以 CentOS 为例. Epoch & Unix Timestamp Conversion Tools. Convert epoch to human readable date and v ...
- Java中的时间与时区__java
转:https://yq.aliyun.com/ziliao/245667 摘要: 本文讲的是Java中的时间与时区__java, 0. 前言: 时间格式: //世界标准时间,其中 ...
- C/C++ 日期 时间 time_t与struct tm转换 收藏
C/C++ 日期 时间 time_t与struct tm转换 收藏 本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时.时间的获取.时间的计算和显示格式等方面 ...
- ORACLE HANDBOOK系列之九:时间与时区(Time and Time Zone)
一) Oracle中的四种时间类型 Date Timestamp Timestamp with local time zone Timestamp with time zone 这四种类型中,前两个与 ...
- C++中的日期和时间 time_t与struct tm转换
C++中的日期和时间 time_t与struct tm转换 通过学习许多C/C++库,可以有很多操作.使用时间的方法.但在这之前需要了解一些 "时间"和"日期" ...
- Java中的时间、时区和夏令时
相关概念 时区 时区是地球上的区域使用同一个时间定义.以前,人们通过观察太阳的位置(时角)决定时间,这就使得不同经度的地方的时间有所不同(地方时).1863年,首次使用时区的概念.时区通过设立一个区域 ...
- Logstash 原理分析/配置文件详解 时间 日期 时区 ip 反斜杠 grok在线地址 类型转换
基本配置 Logstash 本身不能建立集群,Filebeat 连接 Logstash 后会自动轮询 Logstash 服务器是否可用,把数据发送到可用的 Logstash 服务器上面去 Logsta ...
- Android日期时间与时区使用总结汇总
Android中关于日期时间与时区的使用总结 2017年03月22日 11:11:23 微信号 lanjixingxun 阅读数:5356 关于Android 实际开放中,涉及时间转换问题,还是很有必 ...
- C/C++中的日期和时间 TIME_T与STRUCT TM转换
C/C++中的日期和时间 time_t与struct tm转换 - 吴文力 - 博客园 摘要: 本文从介绍基础概念入手,探讨了在C/C++中对日期和时间操作所用到的数据结构和函数,并对计时.时间的获取 ...
最新文章
- 在阿里干了 5 年招聘,这 10 条建议我必须分享给你!
- 基于 abp vNext 和 .NET Core 开发博客项目 - 博客接口实战篇(二)
- 连贯的学习黑树(插入节点)
- jQuery 请指出'$'和'$.fn'的区别?或者说出'$.fn'的用途。
- mysql 备份100G花费时间_利用xtrabackup 全量备份100G的数据恢复到单实例测试
- docker命令易错点整理
- 【Python爬虫】懂车帝_车型库页面
- isprime函数python_Python“函数”之我见
- windows 下vscode coderunner+bash 编程
- 一文看懂推荐系统:排序11:Deep Cross Network(DCN)
- linpack测试软件,服务器性能测试(linpack,stream,netperf,iometer)
- MySQL 查询本月各周
- C++函数参数中的省略号
- 网络层(ip地址划分以及路由)
- 为什么微信连接不上服务器失败怎么回事啊,微信为什么一直提示连接失败请检查网络设置...
- 在地图上可视化地理空间数据的12种方法
- 使用Docker构建服务(6)
- Windows下安装pycocotools(本人亲测,可以解决)
- 浅谈前端性能优化(九)——DNS解析优化
- TeamViewer被检测为商用