C# 确定星期几

C# 确定星期几,c#,C#,我必须实现一个接口,返回传入日期之后的下一个工作日日期。我需要使用以下代码: DiaryDate nextWeekday(DiaryDate originalDate); public DiaryDate(int dayOfMonth, int monthOfYear, int year) { DayOfMonth = dayOfMonth; MonthOfYear = monthOfYear; Year = year; } public int DayOfMonth

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

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;
}

是否有一个公式来计算哪一天是一周?

首先将对象转换为
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

我将从我的注释中复制:

构造一个DateTime对象,在周六或周日时添加一天。然后取当时一周中的当前一天。如果它不循环你有你的当前一天,如果它循环它会得到你一个星期一。或者只是看看今天是星期六还是星期天。如果是:周一,否则今天


你需要考虑假期等吗?对你的问题不是很确定,为什么不
DateTime。现在。AddDays(1)
,这会给你下一个日期???或者,是否要检查它是否不是星期六/星期日构造一个
DateTime
对象,并在有
Saturday
Sunday
时添加一天。然后取当时一周中的当前一天。如果它不循环你有你的当前一天,如果它循环它会得到你一个星期一。或者只是看看今天是星期六还是星期天。如果是:周一,否则就今天。date.dateofweek可能吗?@Habib,他想要下一个工作日(即,不是周六或周日)。嗨,对不起,伙计们,这是一个家庭作业,我认为我不允许使用日期对象等,可能必须使用“Zeller'sCongrence”这样的公式那么我建议你尝试实现这一点。下次在你的问题中也提到它时,我们无从得知。
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; 
}