gpt4 book ai didi

c# - While 循环中的 DateTime.AddDays。我错过了什么?

转载 作者:太空宇宙 更新时间:2023-11-03 17:26:45 24 4
gpt4 key购买 nike

我有一个日期时间对象 dt,它包含今天的日期。

DateTime dt = DateTime.Today;
DateTime idt = new DateTime();

我需要在循环到达当年的最后一天时打印日期,如下所示:
还有 345 天到 12/31/2012

如果我这样做

while (dt.AddDays(i).Year == dt.Year) 
{
idt = dt.AddDays(i);
i++;
}
Console.WriteLine("{0} more days to {1}", i, idt.ToString("d"));

我能够按照我的意愿打印它:还有 345 天到 1/1/2012

我想避免在上面的部分重复dt.AddDays(i)。如果我这样做:

while (idt.Year != dt.Year + 1)
{
idt = dt.AddDays(i);
i++;
}
Console.WriteLine("{0} more days to {1}", i, idt.ToString("d"));

或者这样:

while (idt.Year < 2013)
{
idt = dt.AddDays(i);
i++;
}
Console.WriteLine("{0} more days to {1}", i, idt.ToString("d"));

我得到的输出是 346 more days to 1/1/2013

我肯定遗漏了一些非常明显的东西,但我无法弄清楚。那会是什么?

最佳答案

您可以使用 TimeSpan 来计算差异:

var nextYear = new DateTime(DateTime.UtcNow.Year, 31, 12);
var timeToNextYear = nextYear - DateTime.UtcNow.Date;
var daysToNextYear = timeToNextYear.TotalDays;

关于c# - While 循环中的 DateTime.AddDays。我错过了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8956707/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com