如何根据 1 小时间隔获取时间段

2024-04-23

我想将时间段存储在数组列表中。我有开始时间和结束时间。根据开始时间,它应该创建时间段。 例如,如果开始时间是 09:00AM,结束时间是 21:00PM,那么它应该添加到 arraylist 中,如下所示

上午 09:00 10:00 AM 11:00 AM 12:00 PM 13:00 下午 14:00 下午 ..... 很快 21:00 下午

因此,一个用户预订了 13:00PM 至 15:00PM 的时段,因此该时段不应可供其他用户使用,并且其他时段应该可用。如何将已预订时间与新数组列表进行比较。

Code

    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;
}

尝试这样的事情:

String firstDate = "26/02/2019";
String firstTime = "00:00 AM";
String secondDate = "26/02/2019";
String secondTime = "12:00 PM";

String format = "dd/MM/yyyy hh:mm a";

SimpleDateFormat sdf = new SimpleDateFormat(format);

Date dateObj1 = sdf.parse(firstDate + " " + firstTime);
Date dateObj2 = sdf.parse(secondDate + " " + secondTime);
System.out.println("Date Start: "+dateObj1);
System.out.println("Date End: "+dateObj2);

long dif = dateObj1.getTime(); 
while (dif < dateObj2.getTime()) {
    Date slot = new Date(dif);
    System.out.println("Hour Slot --->" + slot);
    dif += 3600000;
}

这将为您提供每小时的时间段,将其添加到 ArrayList 中,当任何用户选择时间时,然后从 ArrayList 中删除该时间段并更新到服务器,以便下次使用时 用户尝试获取数据时,它不会获取第一个选定的用户时隙。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何根据 1 小时间隔获取时间段 的相关文章

随机推荐