android 判断时间超过24小时,Android 判断系统时间是否在某个时间段之间(如8:00 ~ 12:00)...

该博客提供了一个Java方法,用于检查当前系统时间是否在给定的两个时间点之间,包括跨天的情况。例如,用于显示早中晚问候语。方法通过Time类进行时间操作,适用于24小时制或12小时制的系统。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.这个方法愿意的话就自己研究一下,直接复制走就可以了。(非原创)

即使机主的手机不是24小时制的一样有效,如(上午、下午这种格式的时间一样是有效的)

原文链接:https://my.oschina.net/colorchen789/blog/3003644

`/**

* 判断当前系统时间是否在指定时间的范围内

*

* beginHour 开始小时,例如22

* beginMin 开始小时的分钟数,例如30

* endHour 结束小时,例如 8

* endMin 结束小时的分钟数,例如0

* true表示在范围内, 否则false

*/

public static boolean isCurrentInTimeScope(int beginHour, int beginMin, int endHour, int endMin) {

boolean result = false;

final long aDayInMillis = 1000 * 60 * 60 * 24;

final long currentTimeMillis = System.currentTimeMillis();

Time now = new Time();

now.set(currentTimeMillis);

Time startTime = new Time();

startTime.set(currentTimeMillis);

startTime.hour = beginHour;

startTime.minute = beginMin;

Time endTime = new Time();

endTime.set(currentTimeMillis);

endTime.hour = endHour;

endTime.minute = endMin;

// 跨天的特殊情况(比如22:00-8:00)

if (!startTime.before(endTime)) {

startTime.set(startTime.toMillis(true) - aDayInMillis);

result = !now.before(startTime) && !now.after(endTime); // startTime <= now <= endTime

Time startTimeInThisDay = new Time();

startTimeInThisDay.set(startTime.toMillis(true) + aDayInMillis);

if (!now.before(startTimeInThisDay)) {

result = true;

}

} else {

//普通情况(比如 8:00 - 14:00)

result = !now.before(startTime) && !now.after(endTime); // startTime <= now <= endTime

}

return result;

}`

2.调用判断是否在某个时间段,如8:00直接写8即可,后边的分写0即可。

if (isCurrentInTimeScope(0,0,8,0)){

mTextView.setText("早上好");

}

if (isCurrentInTimeScope(8,0,12,0)){

mTextView.setText("上午好");

}

if (isCurrentInTimeScope(12,0,14,0)){

mTextView.setText("中午好");

}

if (isCurrentInTimeScope(14,0,18,0)){

mTextView.setText("下午好");

}

if (isCurrentInTimeScope(18,0,24,0)){

mTextView.setText("晚上好");

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值