如何将第二天添加到某个时间?

时间:2018-07-14 04:20:19

标签: c# datetime

我正在尝试对飞行时间做些事情。

如果我要在7月5日美国东部时间23:45旅行,并且在美国东部时间01:30着陆,我知道我可以为出发时间建造DateTime;但是我该如何为到达时间设置DateTime

我想说7月6日01:30。我想在C#中执行此操作,但不知道如何执行此操作。

3 个答案:

答案 0 :(得分:0)

您的问题有点含糊。我不确定要做什么。您是否要根据出发日期和飞行时间计算到达日期,或者您有出发和到达的时间?无论如何,DateTime对象都有一个AddDays方法。

DateTime.AddDays(addedtime As Double)

请注意,您可以添加小数天,例如,如果您知道第二天的到达时间为凌晨1:30,则可以将另一个变量设置为等于出发日期时间,然后使用AddDays方法,如下所示

RefrenceToArrivalDateTime.AddDays(1.0625)

希望这会有所帮助。请确保在提出问题之前先检查一下堆栈社区,因为我很肯定这已经在之前得到了回答,并且您清楚地表达了自己的问题

编码愉快!

答案 1 :(得分:0)

您可以将飞行时间定义为TimeSpan

var flightDuration = new TimeSpan(1, 45, 0);

我建议使用DateTimeOffset而不是DateTime,因为它包括时区作为值的一部分。

如果您使用the + operator向开始的TimeSpan添加DateTimeOffset持续时间,则得到的结果为DateTimeOffset。 (如果您愿意坚持使用DateTime,也可以使用它们。)

使用ToString()对其进行格式化,就像使用DateTime一样,将诸如“ MMMM d HH:mm”的字符串传递给它;但请注意,目前有no way of formatting ordinals,因此虽然很容易获得“ 7月6日01:30”,但是却没有简单的方法来获得“ 7月6日01:30”。

有关Choosing between DateTime and DateTimeOffset的更多信息。

答案 2 :(得分:0)

尝试:

DateTime departure = new DateTime(2018, 7, 5, 23, 45, 0); 
DateTime arrival = departure + new TimeSpan(1, 45, 0);