我必须实现一个接口,它返回传入日期后的下一个工作日日期。我需要使用以下代码:
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;
}
是否有计算出哪个日期为一周工作日的公式?
答案 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
。