CP56Time2A时间转换
* 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;
}

CP56Time2A时间转换的更多相关文章
- [jquery]将当前时间转换成yyyymmdd格式
如题: function nowtime(){//将当前时间转换成yyyymmdd格式 var mydate = new Date(); var str = "" + mydate ...
- MySQL 日期、时间转换函数
MySQL 日期.时间转换函数:date_format(date,format), time_format(time,format) 能够把一个日期/时间转换成各种各样的字符串格式.它是 str_to ...
- java时间类型的转换/获取当前时间/将时间转换成String/将String转换成时间
对于我的脑子,我已经服气了...写了N遍的东西,就是记不住...既然记不住那就记下来... 利用java获取当前的时间(String类型,年-月-日 时:分:秒) //我要获取当前的日期 Date d ...
- inner join ,left join ,right join 以及java时间转换
1.inner join ,left join 与 right join (from 百度知道) 例表aaid adate1 a12 a23 a3表bbid bdate1 ...
- Python基本时间转换
时间转换 python中处理时间的时候,最常用的就是字符形式与时间戳之间的转换. 把最基本的转换在这里记下来 string -> timestamp import time import dat ...
- Date类型时间转换
/* 时间转换start */ public static void main(String args[]) { Date nowTime = new Date(); System.out.print ...
- unix环境C编程之日期时间转换
1.理清概念 1.1.日历时间: 含义:国际标准时间1970年1月1日00:00:00以来经过的秒数. 数据类型:time_t.实际上是long的别名. 1.2.tm结构时间: 含义:结构 ...
- php时间转换unix时间戳
本文介绍了php编程中unix时间戳转换的小例子,有关php时间转换.php时间戳的实例代码,有需要的朋友参考下. 第一部分,php 时间转换unix 时间戳实现代码. 复制代码代码示例: <? ...
- Js 处理将时间转换 “年-月-日”
将时间 \/Date(1432828800000+0800)\/" 转换成:“年-月-日” //时间转换function ChangeDateFormat(val) { if (v ...
- Java 时间转换问题总结
这几天开发中遇到时间转换出错的问题,特总结如下: ========================================================================= ...
随机推荐
- KindleVocab 教程,Kindle导出查词记录成文本文档,Kindle导出查询单词记录导入Anki
程序功能 因本人使用Kindle Mate导出觉得复杂,特意写了个自用的导出程序(有linux版本和win两个版本). 所以 KindleVocab 只有一个作用:导出Kindle查询过的生词和生词所 ...
- 8、tnsnames文件配置
监听的配置文件 2.tnsnames.ora文件 tnsnames.ora文件:客户端的 配置tnsnames.ora监听文件 1.使用netca命令 指定图像映射机器 [oracle@db11g a ...
- require/import路径中的叹号是什么?
问题: 之前在一些开源项目的源码里,以及一些文章里,见到如下这样的require/import路径,其中包含形如!.的片段,不知道是什么意思: // https://juejin.im/post/68 ...
- python SQLAlchemy 查询慢sql
1.config文件添加如下配置 FLASKY_DB_QUERY_TIMEOUT = 0.1 # 设置sql执行超时时间 0.1s SQLALCHEMY_RECORD_QUERIES = True # ...
- Redis之常用模块Module
1. Redis-Cell 限流模块 2.RedisBloom 布隆过滤器 https://github.com/RedisBloom/RedisBloom
- qnap nas 下的 nasconfig_fs.img.tgz 及相关的一点记录
QNAP NAS 已安装EntWare(先前的Optware已废弃,不适用),可以使用 opkg 命令安装软件包(如想利用arp命令查看局域网的IP地址及对应物理网卡地址,可使用opkg instal ...
- Windows安装redis并将redis设置成服务开机自启
Redis 作为一种缓存工具,主要用于解决高并发的问题,在分布式系统中有着极其广泛的应用,Redis 本身是应用于 Linux/Unix 平台的(部署在服务器上边),官方并没有提供 Windows 平 ...
- C# 学习笔记 0415
关于零碎的知识笔记总结,你可能需要知道的 一.Linq相关 Find()和First()与FirstOrDefault Find方法只能在List上使用,而后者能更广泛应用在IEnemerable上. ...
- regsvr32.exe使用
regsvr32.exe使用详解: regsvr32.exe是32位系统下使用的DLL注册和反注册工具,使用它必须通过命令行的方式使用,格式是: regsvr32 [/u] [/s] [/n] [ ...
- 树莓派获取唯一ID
树莓派的CPU有序列号,可以通过读取 /proc/cpuinfo 获取 储存的UUID,可以通过 ls /dev/disk/by-uuid或blkid