我正在使用Controller设备,该设备维护用户考勤日志。控制器存储日志时间详细信息如下:
控制器时间 | |
---|---|
690581614 | 2021-06-26 20:13:34.000 |
690581620 | 2021-06-26 20:13:40.000 |
690590751 | 2021-06-26 22:45:51.000 |
您可以根据以下数字计算DateTime
:
public static DateTime ControllerValueToDateTime(int value)
{
int seconds = value % 60;
value /= 60;
int minutes = value % 60;
value /= 60;
int hours = value % 24;
value /= 24;
int day = (value % 31) + 1;
value /= 31;
int month = (value % 12) + 1;
value /= 12;
int year = 2000 + value;
return new DateTime(year, month, day, hours, minutes, seconds, DateTimeKind.Unspecified);
}
%
是余数运算符,所以63 % 60
会返回3
,123 % 60
也会返回,等等。所以我们可以慢慢地从数字中删除各个部分来获得组件值,然后使用它们构建DateTime
实例。
对此进行测试,我们得到以下结果:
控制器时间 | |
---|---|
690581614 | 2021-06-26 20:13:34.000 |
690581620 | 2021-06-26 20:13:40.000 |
690590751 | 2021-06-26 22:45:51.000 |