【发布时间】:2015-07-24 19:27:59
【问题描述】:
我的要求是根据另一个日期计算一个日期。 计算所需的一般规则是:
- 如果输入日期介于 4 月 1 日和 9 月 30 日(任何年份)之间,则计算结果应等于输入年份的 12 月 31 日
- 如果输入日期介于 10 月 1 日和 3 月 31 日之间,则计算结果应等于“下一个”6 月 30 日。
根据这些要求,我有这个代码:
DateTime tmpDate = new DateTime( 2000, inputDate.Month, inputDate.Day );
DateTime aprilDate = new DateTime( 2000, 4, 1 );
DateTime septemberDate = new DateTime( 2000, 9, 30 );
DateTime endofYearDate = new DateTime( 2000, 12, 31 );
DateTime resultDate = DateTime.MaxValue;
if ( tmpDate >= aprilDate && tmpDate <= septemberDate ) {
resultDate = new DateTime( inputDate.Year, 12, 31, 23, 59, 59 );
}
else {
if ( tmpDate > septemberDate && tmpDate <= endofYearDate ) {
resultDate = new DateTime( inputDate.Year, 12, 31, 23, 59, 59 );
}
else {
resultDate = new DateTime( inputDate.Year + 1, 12, 31, 23, 59, 59 );
}
}
但是我认为这段代码有点乱。我怎样才能写得更好?
【问题讨论】:
-
至少Code Review 会不会更好?
-
嗯,不知道那个网站的存在。感谢分享