我的程序从硬件设备接收一个日期时间包,它是字节类型的。一个示例数据包是:
byte[] packet = new byte[] {0x0C, 0x01, 0x15};
//packet[0] is the last two numbers of the year
如评论中所述,packet[0] 代表一年中的最后两个数字。因此,例如,这将转换为十进制的 2012。
现在我的问题是,如何将 2012 返回给用户?对于今年的前两个数字“20”,我知道我可以调用:
int systemYear = DateTime.Now.Year;
返回:0x000007dc,或十进制的 20'12'。我不需要以某种方式删除年份的最后两个数字,在本例中为“12”,而是在该位置插入数据包 [0] 字节。
我并不总是想假设我们是在“20XX”年。如果这个程序在 2101 年运行,这将导致问题。
此外,我不能总是假设硬件会在我们生活的当年返回。这就是我的程序实际上要检查的内容。
因此,例如数据包 [0] = 0x02。这将假设硬件在 2002 年返回。
实现这一目标的最佳方法是什么?