【发布时间】:2020-04-23 03:10:18
【问题描述】:
我想在数组列表中存储时隙。我有开始时间和结束时间。根据开始时间,它应该创建时间段。 例如,如果开始时间是上午 9:00,结束时间是晚上 21:00,那么它应该像下面这样添加到数组列表中
上午 9:00 10:00 AM 11:00 AM 12:00 PM 下午 13:00 下午 14:00 ..... 很快 晚上 21:00
因此,一位用户预订了下午 13:00 到下午 15:00 的时段,因此其他用户不应使用该时段,而其他时段应该可用。如何将已经预订的时间与新的数组列表进行比较。
代码
private void getStartHourArray() {
times = new ArrayList<TimeSlot>();
Calendar calender = Calendar.getInstance();
calender.setTimeZone(TimeZone.getTimeZone("Asia/Calcutta"));
int ti = calender.get(Calendar.HOUR_OF_DAY);
int minutes = calender.get(Calendar.MINUTE);
System.out.println(minutes);
String[] quarterHours = {
"00",
"30",
};
boolean isflag = false;
times = new ArrayList<>();
for (int i = 9; i < 22; i++) {
if (ti > 8) {
for (int j = 0; j < 2; j++) {
if ((i == ti && minutes < Integer.parseInt(quarterHours[j])) || (i != ti) || isflag == true) {
isflag = true;
String time = i + ":" + quarterHours[j];
if (i < 10) {
time = "0" + time;
}
String hourFormat = i + ":" + quarterHours[j];
if (i < 12) {
hourFormat = time + " AM";
} else
hourFormat = time + " PM";
TimeSlot t = new TimeSlot();
t.time = hourFormat;
t.isAvailable = "Available";
times.add(t);
}
}
}
}
if (times != null) {
load.setVisibility(View.GONE);
}
}
时隙模型类
public class TimeSlot {
public String time;
public String isAvailable;
}
【问题讨论】:
-
请添加一些代码来显示如何输入开始时间和结束时间。预订是如何完成的。提供一些最少的代码
-
@Abhimanyu 已添加代码请查看
-
对于这种与时间无关的工作,我建议你不要依赖
Calendar类。它的设计很糟糕而且已经过时了。在任何情况下,您都不应该按照您的方式手动格式化时间字符串。而是将ThreeTenABP 添加到您的Android 项目中,以便使用现代Java 日期和时间API java.time 中的LocalTime和DateTimeFormatter。使用起来感觉好多了。
标签: java android date datetime java-time