【发布时间】:2012-05-17 13:47:15
【问题描述】:
我想模拟 DateTime。假设我有要执行的操作列表,每个操作都有一个日期时间字段。当该日期时间到来时,应该执行该操作。我可以用 DateTime.Now 检查日期时间;但是我怎样才能模拟 DateTime。我的意思是如果当前时间是下午 2 点。并且该动作应该在下午 4 点、5 点运行。我可以使用模拟当前时间到下午 4 点,然后执行第一个操作,一小时后执行第二个操作。
谢谢,
【问题讨论】:
-
时间应该从下午 4 点开始继续。即它应该像时钟一样工作。
-
你需要引入日期时间提供者接口,一个将日期传递给你的类的类。出于测试目的,您需要实现该接口的虚拟版本
-
我实际上已经使用 d Timespan 值实现了这个。例如。假设我希望 d 系统时钟为 2012 年 5 月 1 日晚上 21:00:00。当前日期是 5 月 8 日晚上 11:38:00。当 d 应用程序启动时,我得到 d 差异 DateTime simulationDateTime = '01-May-2012 21:00:00"; long ticksDifference = DateTime.Now.Subtract; compare d date DateTime currentDateTime = DateTime.Now.Subtract(new Timespan(ticksDifference) ); 这正是我现在所需要的。自 DateTime 以来,CurrentDateTime 字段就像时钟一样工作。现在总是随着时间跨度的变化而变化,d 差异为我提供了准确的模拟时钟。
标签: c# datetime simulation