将今天的日期时间与当月的工作日(星期一、星期二等)(第一、第二、第三、第四、第五)相比较

本文关键字:第一 第三 相比较 第五 第四 星期二 第二 星期一 时间 日期 今天 | 更新日期: 2023-09-27 18:25:21

c#中是否有任何内置函数可以比较比较今天的日期时间以匹配,如:(第一、第二、第三、第四、第五)当前月份的工作日(星期一、星期二等)

或者任何一个都可以提供相同的自定义解决方案。

问候

将今天的日期时间与当月的工作日(星期一、星期二等)(第一、第二、第三、第四、第五)相比较

好吧,你可以很容易地找到当天是否匹配:

// Note: consider time zones...
DateTime today = DateTime.Today;
if (today.DayOfWeek == DayOfWeek.Monday)
{
    ...
}

你知道一周中每一天的第一次出现将在1-7的范围内,第二次出现在8-14的范围内等等。所以:

// Check if it's the second Friday of the month...
int targetOccurrence = 2;
DayOfWeek targetDay = DayOfWeek.Friday;
DateTime today = DateTime.Today;
if (today.DayOfWeek == targetDay &&
    (today.Day + 6) / 7 == targetOccurrence)
{
    // Yes, it's the second Friday
}

如果你想知道是在本月的第二个星期五之前还是之后,那就稍微困难一些。无论如何都不是不可能,但更麻烦。

您可以使用

DateTime.Now.DayOfWeek 

获取一周中的当前日期:

DayOfWeek dToday = DateTime.Now.DayOfWeek;
int iDay = dToday.GetHashCode(); // a number between 0-6 representing 
                                 // the days in the week
string sDayName = dToday.ToString(); // can be either Sunday, Monday .. Satruday

使用DateTime.DayOfWeek属性。

例如

if (DateTime.Now.DayOfWeek == DayOfWeek.Monday)
{
     Console.WriteLine("Someone's got a case of the Mondays!");
}