Mat*_*att 0 java time android hour java.util.calendar
我正在构建一个应用程序,我需要知道如何比较两个小时.
例如:我的商店开放06:30 am和关闭17:00 pm,我需要在Textview中显示17:00 pm我的商店关闭后,以及06:00 am我的商店开放后,从周一到周五.
我怎样才能做到这一点?
我收到多个错误:
一个在int打开的时候我把06:30用":"
两个星期一到星期五的限制
请在下面找到我的代码:
public void timer () {
Calendar c = Calendar.getInstance();
int timeOfDay = c.get(Calendar.HOUR_OF_DAY);
int open = 6:30; // 1 ERROR HERE WITH ":"
int close = 17;
if(timeOfDay < close){
hour.setText.("OPEN");
}}
Run Code Online (Sandbox Code Playgroud)
谢谢您的帮助.
您应该使用Java 8日期和时间库,因为日历和日期已过时.
这LocalTime课应该足够了.
LocalTime open = LocalTime.of(6, 30);
LocalTime closed = LocalTime.of(17, 0);
LocalTime currentTime = LocalTime.now();
if (currentTime.isBefore(open) || currentTime.isAfter(closed)) {
// Closed
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用DateTimeFormatter该类将时间格式化为所需的格式.
如果您还想在确定商店的营业时间时考虑一周中的某一天,那么您可以LocalDateTime结合上述示例使用:
LocalDateTime now = LocalDateTime.now();
// The opening days. Static import these from java.time.DayOfWeek
Set<DayOfWeek> daysOpen = new HashSet<>(Arrays.asList(
MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY));
// Opening and closing times
LocalTime timeOpen = LocalTime.of(6, 30);
LocalTime timeClosed = LocalTime.of(17, 0);
if (!daysOpen.contains(now.getDayOfWeek()) || now.toLocalTime().isBefore(timeOpen) || now.toLocalTime().isAfter(timeClosed)) {
System.out.println("Closed");
}
else {
System.out.println("Open");
}
Run Code Online (Sandbox Code Playgroud)