C# 如何获得一个月内所有的工作日和日期

C# 如何获得一个月内所有的工作日和日期,c#,asp.net,datetime,C#,Asp.net,Datetime,我正在尝试获取所选月份的所有工作日以及星期一或星期二等日期??怎么可能呢?是否有我不知道的内置函数 这是在C#2.0中,asp.net使用VS 2005我不保证闰年、夏令时跳跃、特殊日子等 公共列表GetWeekdates和Dates(整数月,整数年) { 列表工作日=新建列表(); DateTime firstOfMonth=新日期时间(年、月、1); DateTime currentDay=月初; while(firstOfMonth.Month==currentDay.Month) { D

我正在尝试获取所选月份的所有工作日以及星期一或星期二等日期??怎么可能呢?是否有我不知道的内置函数


这是在C#2.0中,asp.net使用VS 2005

我不保证闰年、夏令时跳跃、特殊日子等

公共列表GetWeekdates和Dates(整数月,整数年)
{
列表工作日=新建列表();
DateTime firstOfMonth=新日期时间(年、月、1);
DateTime currentDay=月初;
while(firstOfMonth.Month==currentDay.Month)
{
DayOfWeek DayOfWeek=当前日期.DayOfWeek;
if(dayOfWeek!=dayOfWeek.Saturday和dayOfWeek!=dayOfWeek.Sunday)
工作日。添加(当前日);
currentDay=currentDay.AddDays(1);
}
返回工作日;
}

生成的
DateTime
对象有一个
DayOfWeek
属性,您可以检查它是否是周一到周五。

我对闰年、夏令时跳跃、特殊日期等不做任何保证

公共列表GetWeekdates和Dates(整数月,整数年)
{
列表工作日=新建列表();
DateTime firstOfMonth=新日期时间(年、月、1);
DateTime currentDay=月初;
while(firstOfMonth.Month==currentDay.Month)
{
DayOfWeek DayOfWeek=当前日期.DayOfWeek;
if(dayOfWeek!=dayOfWeek.Saturday和dayOfWeek!=dayOfWeek.Sunday)
工作日。添加(当前日);
currentDay=currentDay.AddDays(1);
}
返回工作日;
}
生成的
DateTime
对象有一个
DayOfWeek
属性,您可以检查它是否在周一到周五。

这应该有效

private List<DateTime> getWeekDayDates(int month, int year)
{
    List<DateTime> weekdays = new List<DateTime>();
    DateTime basedt = new DateTime(year, month, 1);
    while ((basedt.Month == month) && (basedt.Year == year))
    {
        if (basedt.DayOfWeek == (DayOfWeek.Monday | DayOfWeek.Tuesday | DayOfWeek.Wednesday | DayOfWeek.Thursday | DayOfWeek.Friday))
        {
            weekdays.Add(new DateTime(basedt.Year, basedt.Month, basedt.Day));
        }
        basedt = basedt.AddDays(1);
    }
    return weekdays;
}
private List getWeekDayDates(整数月,整数年)
{
列表工作日=新建列表();
DateTime basedt=新的日期时间(年、月、1);
而((basedt.Month==月)和&(basedt.Year==年))
{
如果(basedt.DayOfWeek==(DayOfWeek.周一| DayOfWeek.周二| DayOfWeek.周三| DayOfWeek.周四| DayOfWeek.周五))
{
添加(新的日期时间(basedt.Year、basedt.Month、basedt.Day));
}
basedt=basedt.添加天数(1);
}
返回工作日;
}
然后,您可以在需要的时候从每个日期获取任何信息。

这应该可以

private List<DateTime> getWeekDayDates(int month, int year)
{
    List<DateTime> weekdays = new List<DateTime>();
    DateTime basedt = new DateTime(year, month, 1);
    while ((basedt.Month == month) && (basedt.Year == year))
    {
        if (basedt.DayOfWeek == (DayOfWeek.Monday | DayOfWeek.Tuesday | DayOfWeek.Wednesday | DayOfWeek.Thursday | DayOfWeek.Friday))
        {
            weekdays.Add(new DateTime(basedt.Year, basedt.Month, basedt.Day));
        }
        basedt = basedt.AddDays(1);
    }
    return weekdays;
}
private List getWeekDayDates(整数月,整数年)
{
列表工作日=新建列表();
DateTime basedt=新的日期时间(年、月、1);
而((basedt.Month==月)和&(basedt.Year==年))
{
如果(basedt.DayOfWeek==(DayOfWeek.周一| DayOfWeek.周二| DayOfWeek.周三| DayOfWeek.周四| DayOfWeek.周五))
{
添加(新的日期时间(basedt.Year、basedt.Month、basedt.Day));
}
basedt=basedt.添加天数(1);
}
返回工作日;
}

然后,您可以从每个DateTime中获取所需的任何信息。

您希望列表类型是什么,一系列DateTime对象?日期和日期,如“15日和星期一”,我需要这两个值。抱歉,我不理解您的问题。你能说得更具体一点吗?:)我编辑了我的问题@PicroFoegy您希望列表类型是什么,一系列DateTime对象?日期和日期,如“15日和星期一”,我想要这两个值。抱歉,我不理解您的问题。你能说得更具体一点吗?:)我编辑了我的问题@PicrofoEGYI还没有测试过,但根据MSDN,我使用的成员在2.0中。@Ram没有,但您可以显式声明类型。我会更新答案的。非常感谢。这太完美了,我今天学到了一些东西。再次感谢!我还没有测试过,但是根据MSDN,我使用的成员在2.0中。@Ram没有,但是您可以显式声明类型。我会更新答案的。非常感谢。这太完美了,我今天学到了一些东西。再次感谢!工作日的支票不是那样的。我怀疑您想要:
如果((basedt.DayOfWeek&(DayOfWeek.Monday | DayOfWeek.周二| DayOfWeek.周三| DayOfWeek.周四| DayOfWeek.fweek))!=0)
或类似的值。编辑:我认为年检是多余的(我想不出年份会发生变化的任何条件,但月份不会发生变化)我可能有周日语法错误,我不经常写这样的子句,我在年检上也想到了同样的事情,但我想为什么不呢。平日检查不会那样工作。我怀疑您想要:
如果((basedt.DayOfWeek&(DayOfWeek.Monday | DayOfWeek.周二| DayOfWeek.周三| DayOfWeek.周四| DayOfWeek.fweek))!=0)
或类似的值。编辑:我认为年检是多余的(我想不出年份会发生变化的条件,但月份不会发生变化)我可能有周日语法错误,我不经常写这样的子句,我在年检上也想到了同样的事情,但我想为什么不。