java拿到日期的小时和分钟_在Java中仅按小时和分钟比较2个日期?

我想比较2天(实际上是3天).在我的用例中,我有3个日期需要比较.一个是StartSleepingTime,StopSleepingTime和Now.我的应用程序监视用户的活动级别,我有一个每半小时运行一次的scheduleeld任务,以检查NOW是否在用户的StartSleepingTime和StopSleepingTime之间,以确保在此间隔期间停止活动监视服务.由于用户在首次登录时设置了StartSleepingTime和StopSleepingTime,当我运行计划任务时,与NOW相比,两者都将处于“过去”状态.目前我正在尝试从3个日期中仅提取小时和分钟信息,并进行如下比较:

public static boolean compareHrsAndMintsOnly(Date startSH, Date now, Date stopSH) {

boolean isNowWithinSleepingTime = false;

Calendar startSHCalendar = Calendar.getInstance();

startSHCalendar.setTime(startSH);

Calendar nowCalendar = Calendar.getInstance();

nowCalendar.setTime(now);

Calendar stopSHCalendar = Calendar.getInstance();

stopSHCalendar.setTime(stopSH);

int startSHhour = startSHCalendar.get(Calendar.HOUR_OF_DAY);

int startSHmin = startSHCalendar.get(Calendar.MINUTE);

int nowHour = nowCalendar.get(Calendar.HOUR_OF_DAY);

int nowMin = nowCalendar.get(Calendar.MINUTE);

int stopSHhour = stopSHCalendar.get(Calendar.HOUR_OF_DAY);

int stopSHmin = stopSHCalendar.get(Calendar.MINUTE);

if ((startSHhour > nowHour && startSHmin > nowMin) && (nowHour < stopSHhour && nowMin < stopSHmin)) {

// stop the monitoring service

isNowWithinSleepingTime = true;

}else {

// start the monitoring service

isNowWithinSleepingTime = false;

}

return isNowWithinSleepingTime;

}

但由于某些原因,这不起作用.另外,我感觉必须有更好的方法来实现比较.有任何建议请!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值