CP56Time2A时间转换

1|0* CP56Time2A时间格式

  • 该时标格式使用7个字节来表示时间信息,上图的表中体现为——从最左侧8所在的行开始,到下面56所在的行,共7行。每一行表示一个字节,每行从右向左依次是该字节的第一位(最低位)、第二位....第八位(最高位)。
  • 该时标格式使用56个二进制数(56bit)存储时间信息,这56个数分别有对应的序号(1-56)。Milliseconds占用了两个字节;尖括号中的0——59999即时间信息中秒的范围是0-59999ms(0.000~59.999s)。
// cp56time2a时间格式 typedef union { // 低7字节是七个八位位组二进制时间 uint64_t Cp56Time; // uint8_t Cp56Time[7]; struct { uint16_t msec; uint8_t min : 6; uint8_t res1 : 1; uint8_t iv : 1; uint8_t hour : 5; uint8_t res2 : 2; uint8_t su : 1; uint8_t mday : 5; uint8_t wday : 3; uint8_t month : 4; uint8_t res3 : 4; uint8_t year : 7; uint8_t res4 : 1; }Compts; }Cp56Time2a; // 本地时间结构体 typedef struct { uint8_t year; uint8_t month; uint8_t mday; uint8_t hour; uint8_t min; uint16_t msec; }Time; #pragma pack(pop) Time time = {0}; // 定义一个保存时间的结构体 Cp56Time2a cp56time2a = {0}; // 定义一个cp56time2a的结构体 // cp56time2a 转本地时间 static uint64_t Cp56time2aToLocalTime(uint64_t cp56time2atime) { printf("\n\t Year : %d \n\r", cp56time2a.Compts.year); printf("\n\t month : %d \n\r", cp56time2a.Compts.month); printf("\n\t mday : %d \n\r", cp56time2a.Compts.mday); printf("\n\t wday : %d \n\r", cp56time2a.Compts.wday); printf("\n\t hour : %d \n\r", cp56time2a.Compts.hour); printf("\n\t min : %d \n\r", cp56time2a.Compts.min); printf("\n\t msec : %d \n\r", cp56time2a.Compts.msec); return 0; } // 本地时间转cp56time2a格式 uint64_t LocalTimeToCp56Time2a(const Time *time) { cp56time2a.Compts.year = time->year; cp56time2a.Compts.month = time->month; cp56time2a.Compts.mday = time->month; cp56time2a.Compts.hour = time->hour; cp56time2a.Compts.min = time->min; cp56time2a.Compts.msec = time->msec; return cp56time2a.Cp56Time; } int main(void) { time.year = 23; time.month = 12; time.mday = 12; time.hour =18; time.min = 30; time.msec = 40; printf("\n\t cp56time2a 0X:%llX \n\r", LocalTimeToCp56Time2a(&time)); return 0}


__EOF__

本文作者xiaohu
本文链接https://www.cnblogs.com/xiaohuzaixue/p/17897534.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   EternalH  阅读(2053)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
点击右上角即可分享
微信分享提示