新的一天

新的一天,从javaEye开始。
抬头看看窗户,21楼的窗下是别人的房顶,一群野猫在屋顶嬉戏,更远处是深秋的上海的天空,灰蒙蒙的笼罩在高楼大厦之间。
### Java代码示例:判断是否进入了新的一天 为了检测是否进入了一天的新一天,可以创建一个类来保存上次检查的时间,并定期比较当前时间和这个时间。如果两者不在同一天,则认为进入了新的一天。 ```java import java.time.LocalDate; import java.time.LocalDateTime; public class DayChecker { private LocalDateTime lastCheckedTime; public DayChecker(LocalDateTime initialTime) { this.lastCheckedTime = initialTime; } /** * 判断自上一次调用此方法以来是否已过了一整天。 */ public boolean isNewDay() { LocalDate currentDate = LocalDateTime.now().toLocalDate(); LocalDate previousDate = lastCheckedTime.toLocalDate(); // 更新最后检查时间为现在 lastCheckedTime = LocalDateTime.now(); return !currentDate.equals(previousDate); } } ``` 通过上述实现,在每次调用 `isNewDay` 方法时都会更新最后一次检查的时间戳并返回是否确实到了新的日期[^1]。 对于测试目的或模拟环境而言,还可以考虑提供接口以便更容易地注入不同的时间源: ```java interface IDateTimeProvider { LocalDateTime getCurrentDateTime(); } class RealDateTimeProvider implements IDateTimeProvider { @Override public LocalDateTime getCurrentDateTime() { return LocalDateTime.now(); } } // 使用IDateTimeProvider重构后的版本 public class DayCheckerWithInterface { private final IDateTimeProvider dateTimeProvider; private LocalDateTime lastCheckedTime; public DayCheckerWithInterface(IDateTimeProvider provider, LocalDateTime initialTime) { this.dateTimeProvider = provider; this.lastCheckedTime = initialTime; } public boolean isNewDay() { LocalDate currentDate = dateTimeProvider.getCurrentDateTime().toLocalDate(); LocalDate previousDate = lastCheckedTime.toLocalDate(); lastCheckedTime = dateTimeProvider.getCurrentDateTime(); return !currentDate.equals(previousDate); } } ``` 这样做的好处是可以轻松替换实际的时间获取逻辑,比如用于单元测试中的假数据生成器。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值