我正在编写一个 asp.net Web 应用程序,我希望用户能够选择支付期的结束时间。
支付期总是在星期六结束。
我正在使用日历控件,并为其提供了一个 onSelectionChanged 事件处理程序,如下所示:
protected void forceSaturdaySelection (object sender, EventArgs e)
{
Weekending.SelectedDate = Weekending.SelectedDate.AddDays(DayOfWeek.Saturday - Weekending.SelectedDate.DayOfWeek);
}
这段代码有效,因为我希望 Web 应用程序选择用户选择的支付期结束时间,无论他们选择一周中的哪一天。
我的问题是,有没有更易读的方法?
没有...但这不会阻止你自己做!创建扩展方法..或者只是另一种调用方法:
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();