如何使用C#从当前日期获取当前季度

我试图从当前日期获得当前季度并将其作为int存储,然后在我得到当前季度之后,比如说它是Q1然后我想将Q1存储为字符串。 我收到的错误如下:unassigned local variable dt。 。 请帮忙。 谢谢

DateTime dt; int quarterNumber = (dt.Month - 1) / 3 + 1; 

那么你没有在任何地方指定“当前日期” – 你没有为你的dt变量赋值,这是编译器抱怨的。 您可以使用:

 DateTime dt = DateTime.Today; 

请注意,这将使用系统本地时区 – 日期取决于时区。 例如,如果您想要当前时刻的UTC日期,您需要:

 DateTime dt = DateTime.UtcNow.Date; 

仔细想想“今天”的意思。

此外,您计算的一个稍微简单的替代版本将是:

 int quarter = (month + 2) / 3; 

这是一个好的开始,我最终使用了这一行。 看起来更直接的目标,而不是添加2。

 Math.Ceiling(DateTime.Today.Month / 3m) 

dt目前被指定为null。 您需要使用DateTime dt = DateTime.Now;初始化它DateTime dt = DateTime.Now;

它使用default(DateTime)初始化,其值为1/1/0001 12:00:00 AM