开始上班

请假请了十几天,现在又该上班了,安心上班,努力赚钱。。。。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
以下是一个简单的 Java 实现示例,其中包括了普通计时和紧急计时两种计时方式的逻辑: ```java import java.time.DayOfWeek; import java.time.LocalDateTime; import java.time.LocalTime; public class CaseTimer { private final LocalTime morningStart = LocalTime.of(9, 0); private final LocalTime morningEnd = LocalTime.of(11, 30); private final LocalTime afternoonStart = LocalTime.of(12, 30); private final LocalTime afternoonEnd = LocalTime.of(17, 30); private final LocalTime nightStart = LocalTime.of(18, 30); private final LocalTime nightEnd = LocalTime.of(23, 30); public LocalDateTime startTiming(boolean isEmergency, LocalDateTime reportTime) { if (isEmergency) { // 紧急计时,从上报时间开始计时 return reportTime; } else { // 普通计时,从下一个工作时间开始计时 LocalDateTime nextWorkTime = getNextWorkTime(reportTime); return nextWorkTime != null ? nextWorkTime : reportTime; } } private LocalDateTime getNextWorkTime(LocalDateTime time) { DayOfWeek dayOfWeek = time.getDayOfWeek(); LocalTime localTime = time.toLocalTime(); if (dayOfWeek == DayOfWeek.SATURDAY || dayOfWeek == DayOfWeek.SUNDAY) { // 非工作日 return null; } else if (localTime.isBefore(morningStart)) { // 上午未开始上班 return LocalDateTime.of(time.toLocalDate(), morningStart); } else if (localTime.isAfter(nightEnd)) { // 当天晚上及以后 return null; } else if (localTime.isAfter(afternoonEnd) && localTime.isBefore(nightStart)) { // 下午下班后,晚上上班前 return LocalDateTime.of(time.toLocalDate().plusDays(1), morningStart); } else if (localTime.isAfter(morningEnd) && localTime.isBefore(afternoonStart)) { // 中午休息时间 return LocalDateTime.of(time.toLocalDate(), afternoonStart); } else if (localTime.isAfter(morningStart) && localTime.isBefore(morningEnd)) { // 上午上班时间 return LocalDateTime.of(time.toLocalDate(), morningEnd); } else if (localTime.isAfter(afternoonStart) && localTime.isBefore(afternoonEnd)) { // 下午上班时间 return LocalDateTime.of(time.toLocalDate(), afternoonEnd); } else { // 其他情况,如晚上上班时间 return LocalDateTime.of(time.toLocalDate(), localTime); } } } ``` 这里用到了 Java 8 中的 `LocalDateTime` 和 `LocalTime` 类,通过判断当前时间所在的星期几和时间段,来确定下一个工作时间。其中 `startTiming` 方法接收两个参数,第一个是计时类型,第二个是上报时间。如果是紧急计时,直接返回上报时间,否则调用 `getNextWorkTime` 方法获取下一个工作时间,如果获取到就从那个时间开始计时,否则就从上报时间开始计时。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cao447214075

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值