确定星期几

时间:2013-12-11 20:44:08

标签: c#

我必须实现一个接口,它返回传入日期后的下一个工作日日期。我需要使用以下代码:

DiaryDate nextWeekday(DiaryDate originalDate);

public DiaryDate(int dayOfMonth, int monthOfYear, int year)
{
    DayOfMonth = dayOfMonth;
    MonthOfYear = monthOfYear;
    Year = year;
}
public int DayOfMonth
{
    get;
    set;
}
public int MonthOfYear
{
    get;
    set;
}
public int Year
{
    get;
    set;
}

是否有计算出哪个日期为一周工作日的公式?

2 个答案:

答案 0 :(得分:2)

我将从我的评论中复制出来:

  

构建DateTime对象,并在星期六或星期日添加1天。然后在当时采用当周的当天。如果它没有循环你有你当前的一天,如果它循环它会得到你星期一。或者真的只是检查今天是星期六/星期日。如果是的话:采取星期一,否则今天采取

var someDate = new DateTime(year, monthOfYear, dayOfMonth).AddDays(1);
if(someDate.DayOfWeek == DayOfWeek.Saturday || someDate.DayOfWeek == DayOfWeek.Sunday) { 
    return DayOfWeek.Monday; 
} else { 
    return someDate.DayOfWeek; 
}

答案 1 :(得分:0)

首先将对象转换为DateTime以访问通过它们提供的所有工具:

DateTime date = new DateTime(originalDate.Year, originalDate.Month, originalDate.Day);

然后我们可以添加一天,然后在日期为周末时继续添加日期:

date = date.AddDays(1);
while (date.DayOfWeek == DayOfWeek.Saturday ||
    date.DayOfWeek == DayOfWeek.Sunday)
{
    date = date.AddDays(1);
}

然后您需要做的就是将其转换回您自己的日期对象,假设您无法更改代码以使用DateTime