首页 > 解决方案 > 检查我的当前时间是否存在于 java android 中的 7:00 PM -10.00 AM

问题描述

示例:我的当前时间 = 8:25 PM 这意味着当前时间在晚上 7:00 到上午 10:00 之间。那么我如何确定它以及如果里面显示一条消息?

这是餐厅时间限制。从晚上 7:00 到上午 10:00 时间范围内用户不能订购任何东西。

 try {

        // Start Time
        String string1 = "07:00 PM";
        Date time1 = new SimpleDateFormat("hh:mm a").parse(string1);
        Calendar calendar1 = Calendar.getInstance();
        calendar1.setTime(time1);
        calendar1.add(Calendar.DATE, 1);


        // End Time
        String string2 = "10:00 AM";
        Date time2 = new SimpleDateFormat("hh:mm a").parse(string2);
        Calendar calendar2 = Calendar.getInstance();
        calendar2.setTime(time2);
        calendar2.add(Calendar.DATE, 1);


        // Get Current Time
        Date date = new Date();
        SimpleDateFormat sdf = new SimpleDateFormat("hh:mm a");
        String currenttime = sdf.format(date);
        Date d = new SimpleDateFormat("hh:mm a").parse(currenttime);
        Calendar calendar3 = Calendar.getInstance();
        calendar3.setTime(d);
        calendar3.add(Calendar.DATE, 1);

        Date x = calendar3.getTime();
        if (x.after(calendar1.getTime()) && x.before(calendar2.getTime())) {
            System.out.println("Not possible to order now");
        }
        else
        {
            System.out.println("YES POSSIBLE");
        }
    } catch (ParseException e) {
        e.printStackTrace();
    }

标签: javaandroiddatetime

解决方案


如果你想避免 NullPointerException 和 ParseException 检查:

public static boolean isAvailableForBooking() {
        /* 10:00 AM */
        final int OPEN_HOUR = 10; /* 0 - 23*/
        final int OPEN_MINUTE = 0; /* 0 - 59*/
        final int OPEN_SECOND = 0; /* 0 - 59*/

        /* 07:00 PM */
        final int CLOSED_HOUR = 19;
        final int CLOSED_MINUTE = 0;
        final int CLOSED_SECOND = 0;

        Calendar openHour = Calendar.getInstance();
        openHour.set(Calendar.HOUR_OF_DAY, OPEN_HOUR);
        openHour.set(Calendar.MINUTE, OPEN_MINUTE);
        openHour.set(Calendar.SECOND, OPEN_SECOND);

        Calendar closedHour = Calendar.getInstance();
        closedHour.set(Calendar.HOUR_OF_DAY, CLOSED_HOUR);
        closedHour.set(Calendar.MINUTE, CLOSED_MINUTE);
        closedHour.set(Calendar.SECOND, CLOSED_SECOND);

        Calendar now = Calendar.getInstance();

        return now.after(openHour) && now.before(closedHour);
    }


推荐阅读