C#将周作为DateTime

时间:2016-06-03 18:30:09

标签: c# datetime

我正在为一个采用字符串助记符的方法创建一个switch case,并返回一个DateTime作为结果。 例如,这是其中的一部分:

switch (mnemonic)
{
    case CURRENT_TIME:
        return DateTime.Now;
    case TODAY:
        return DateTime.Now.Date;
}

我坚持的问题是:

case THIS_WEEK:

如何返回作为DateTime对象的星期?

3 个答案:

答案 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包装类,其中还包括一周#,如果这是您专门寻找的项目并返回该项目。