我正在阅读福勒清洁代码书,我认为我的代码有点乱,我想要一些建议:
我有一个简单的业务需求,它返回我的Thread的新执行日期。
我有两个课堂领域:_hour和_day 如果实际日期高于我的_day字段,我必须返回true,所以我将为“executionDate”添加一个月 如果这一天是相同的,但实际小时高于_hour我也应该返回true 所以我做了这个简单的方法:
private bool ScheduledDateGreaterThanCurrentDate (DateTime dataAtual) {
if (dateActual.Day > _day) {
return true;
}
if (dateActual.Day == _day && dateActual.Hour > _hour) {
return true;
}
if (dateActual.Day == _day && dateActual.Hour == _hour)
if (dateActual.Minute>0 || dateActual.Second>0)
return true;
return false;
}
我正在使用TDD进行编程,所以我知道返回是正确的,但这对维护代码不好吗?
答案 0 :(得分:11)
var compareDate = new DateTime(
dateActual.Year,
dateActual.Month,
_day,
_hour,
0,
0);
return dateActual> compareDate;
答案 1 :(得分:3)
可以将DateTime对象相互比较。
例如,假设我的班级有这个字段:
// Using DateTime.Today as an example
DateTime _date = DateTime.Today;
然后我可以这样做,而不是方法调用
if (dataAtual > _date) {
// logic here
}
答案 2 :(得分:0)
如果在.NET中使用datetime对象,它将为您完成所有这些逻辑。