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

Cus*_*dio 2 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;
}
Run Code Online (Sandbox Code Playgroud)

我正在使用TDD进行编程,所以我知道返回是正确的,但是维护代码不好吗?

Joh*_*zen 11

var compareDate = new DateTime(
    dateActual.Year,
    dateActual.Month,
    _day,
    _hour,
    0,
    0);
return dateActual> compareDate;
Run Code Online (Sandbox Code Playgroud)