我正在编写一个asp.net网络应用程序,我希望用户能够选择支付期的结束。
支付期限总是在星期六结束。
我正在使用日历控件,并为它提供了一个onSelectionChanged事件处理程序,如下所示:
protected void forceSaturdaySelection (object sender, EventArgs e)
{
Weekending.SelectedDate = Weekending.SelectedDate.AddDays(DayOfWeek.Saturday - Weekending.SelectedDate.DayOfWeek);
}
此代码有效,因为我希望网络应用程序选择用户选择的付款期限结束,无论他们选择哪一天。
我的问题是,有更可读的方法吗?
答案 0 :(得分:1)
没有...但是这不会阻止你自己做这件事!创建一个扩展方法..或者只是另一种方法来调用:
private DateTime getPayPeriodEnding(DateTime selectedDate) {
return selectedDate.AddDays(DayOfWeek.Saturday - selectedDate.DayOfWeek);
}
扩展方法版本:
public static DateTime NextPayPeriodEndDate(this DateTime selectedDate) {
return selectedDate.AddDays(DayOfWeek.Saturday - selectedDate.DayOfWeek);
}
然后您的代码变为:
WeekEnding.SelectedDate = getPayPeriodEnding(WeekEnding.SelectedDate);
或..
WeekEnding.SelectedDate = WeekEnding.SelectedDate.NextPayPeriodEndDate();