在Windows Vista上的C#中-7(点网4.0或更低)
我正在尝试比较登录时间,当前时间和文件的修改时间的值,以查看哪个更大,哪个最小。我已经找到了声明和强制转换这三个值的方法,但它们不是同一类型。我认为Unix纪元以来的使用率最高,而且似乎坚持转换
的长格式File.GetLastWriteTime("time.cs" )
显然,溢出是个问题,谁会猜到,而不是我的。如此出色的操作系统和语言。无论如何。有人可以给我一个完整的示例,该示例如何转换返回值并将文件的修改时间输出到int32 unix epoch。或者,有人可以向我展示完整的示例,如何比较上述三个值,而不用拖曳日志文件或不使用jQuery或定义超出我要求范围的函数或语言。速度是关键,参数不是必需的。
答案 0 :(得分:-1)
尖锐的人群没有答案吗?有一个惊喜。好吧,这大约和一年中有365天一样精确,但就我的目的而言,它将起作用。因为两种形式的内建非遍历日期时间是不够的。为了所有的乐趣,请在12月10日前进行。解决方案:
DateTime dt = File.GetLastWriteTime("time.cs");
var sec = ( ( dt.Year - 1970 )*31536000) + (dt.Month*2592000) + (dt.Day*86400) + (dt.Hour*3600) + (dt.Minute*60) + (dt.Second * 1) - 2592000 - 86400;
我认为对于Windows,这实际上被认为是有效的。谁能告诉我为什么DateTime不仅被视为字符串?是base24取代base 16还是其他东西?我们是否仅出于msns效率低的问题向我们的处理器添加了寄存器?我要走梯子。前端的便利性不是后端丑陋的借口。接下来,我将发布一个纯粹的汇编答案,内容涉及如何通过基数2和127位寻址将gregorian转换为纪元……疯狂。