更好的方法来清理这种混乱的bool方法

时间:2010-06-07 18:59:43

标签: c# coding-style

我正在阅读福勒清洁代码书,我认为我的代码有点乱,我想要一些建议:

我有一个简单的业务需求,它返回我的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进行编程,所以我知道返回是正确的,但这对维护代码不好吗?

3 个答案:

答案 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对象,它将为您完成所有这些逻辑。