我正在为一个采用字符串助记符的方法创建一个switch case,并返回一个DateTime作为结果。 例如,这是其中的一部分:
switch (mnemonic)
{
case CURRENT_TIME:
return DateTime.Now;
case TODAY:
return DateTime.Now.Date;
}
我坚持的问题是:
case THIS_WEEK:
如何返回作为DateTime对象的星期?
答案 0 :(得分:5)
一周由两个点定义,即开始日期和结束日期。如果您只想返回一个日期时间对象,则返回开始日期,并且您知道一周从开始日期算起7天。
答案 1 :(得分:2)
您可以通过简单的数学获得一周的第一天
DateTime date = DateTime.Today;
DayOfWeek firstDay = CultureInfo.CurrentCulture.DateTimeFormat.FirstDayOfWeek;
var firstDayOfTheWeek = date.AddDays(firstDay - date.DayOfWeek);
Console.WriteLine(firstDayOfTheWeek);
int weekNumber = firstDayOfTheWeek.DayOfYear / 7; // In case you want this information as well.
Console.WriteLine(weekNumber);
答案 2 :(得分:-2)
你试过了吗?
Calendar.GetWeekOfYear()
请参阅:Calendar.GetWeekOfYear Method (DateTime, CalendarWeekRule, DayOfWeek)
此代码将为您提供当前查看日期的#周。如果要显示一周的第一天,则可以从此信息中计算该DateTime对象。但是,我会创建一个DateTime包装类,其中还包括一周#,如果这是您专门寻找的项目并返回该项目。