我正在尝试从当前日期获取当前季度,并将其首先存储为int,然后在我获得当前季度后,比如说它是Q1,我想将Q1存储为字符串。但我遇到了一个错误,错误信息是:未分配本地变量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;
Math.Ceiling(DateTime.Today.Month / 3m)
dt 目前被赋值为 null。你需要使用 DateTime dt = DateTime.Now;
进行初始化。
null
,那值是什么呢?指向空的指针?还是在那个时候内存中的垃圾? - Christophe De Troyer它被初始化为default(DateTime)
的值,该值为1/1/0001 12:00:00 AM
default(DateTime)
。如果它是局部变量,则根本不会初始化,如果您尝试在没有初始化的情况下使用它,编译器将抛出错误,这就是问题所在的地方。 - Mog0