以BCD形式输出系统日期值

项目要求以四个字节的长度,输出日期值的BCD码形式

对需求进行分析,以日期2022年12月16日为例:

前两个字节显示2022,第三个字节显示12,第四个字节显示16

如果直接将2022.12.16在四个字节中显示,则会显示成:7,E6,C,10;该种显示为16进制显示,并不是很直观,如果以BCD码显示,则显示为:20,22,12,16

即第一个字节显示2022(年)的高两位,且字节的高4位显示20的十位,字节的低4位显示20的个位

第二个字节显示2022(年)的低两位,且字节的高4位显示22的十位,字节低4位显示22的个位

第三个字节显示12(月)值,且字节的高4位显示12的十位,字节低4位显示12的个位

第三个字节显示16(月)值,且字节的高4位显示16的十位,字节低4位显示16的个位

具体代码实现为:

#include "stdafx.h"
#include<Windows.h>


int _tmain(int argc, _TCHAR* argv[])
{
	SYSTEMTIME sysTime;
	int year1,year2,month,day;
	

    GetLocalTime(&sysTime);


	year1 = (sysTime.wYear/1000)*16 + (sysTime.wYear/100)%10; //因为年份的前两位一直为20,
                                                              //所以可以直接赋值为0X20
	year2 = ((sysTime.wYear%100)/10)*16 + (sysTime.wYear%100)%10;
	month = (sysTime.wMonth/10)*16 + sysTime.wMonth%10;
	day = (sysTime.wDay/10)*16 + sysTime.wDay%10;

	printf("Year1: %2X\n", year1);
	printf("Year2: %2X\n", year2);
	printf("Month: %2X\n", month);
	printf("Day:   %2X\n", day);


	return 0;
}

运行结果为:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

WangLanguager

您的鼓励是对我最大的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值