根据 Java 和 Android Studio 中的特定时间检查当前时间

Dan*_*Kay 2 java time boolean date android-studio

如果当前时间等于下午 6 点或下午 6 点之后并且不在第二天午夜和早上 6 点之间,我想将布尔值 isBasePriceTime 设置为 false。但是,如果当前时间是下午 2 点,它会继续将 isBasePriceTime 设置为 false。

private boolean checkCurrentTimePriceType()
{
    /*Get the current price type depending on the time of the day the user wants to
      get a cab */

    Calendar today = Calendar.getInstance();
    Date currentDate = today.getTime();

    //creates a time for 6pm
    String nightPriceFullTime = "18:00:00";
    Date nightPriceTime = java.sql.Time.valueOf(nightPriceFullTime);
    Calendar nightPriceDateCalendar = Calendar.getInstance();
    nightPriceDateCalendar.setTime(nightPriceTime);

    //creates a time for midnight
    String nightPriceFullTimeMidnight = "00:00:00";
    Date nightPriceTimeMidnight = java.sql.Time.valueOf(nightPriceFullTimeMidnight);
    Calendar nightPriceMidnightDateCalendar = Calendar.getInstance();
    nightPriceMidnightDateCalendar.setTime(nightPriceTimeMidnight);

    //creates a time for 6am
    String basePriceFullTime = "06:00:00";
    Date basePriceTime = java.sql.Time.valueOf(basePriceFullTime);
    Calendar basePriceDateCalendar = Calendar.getInstance();
    basePriceDateCalendar.setTime(basePriceTime);


    boolean isBasePriceTime;

    //checks if the current time is or after 6pm, or if the the current time is between midnight and 6am
    if(((today.getTime().after(nightPriceDateCalendar.getTime())) || (today.getTime().equals(nightPriceDateCalendar.getTime())))
            || ((today.getTime().before(basePriceDateCalendar.getTime())) && (today.getTime().after(nightPriceMidnightDateCalendar.getTime()))))
    {
        //user will pay a night time price
        isBasePriceTime = false;
    }
    else
    {
        //user will pay a base time price
        isBasePriceTime = true;
    }

    //return value of isNightPrice boolean variable
    return isBasePriceTime;
}
Run Code Online (Sandbox Code Playgroud)

Zir*_*con 5

也许这种简化对你有用:

int currentHour = Calendar.getInstance().get(Calendar.HOUR_OF_DAY); //Current hour
return currentHour < 18 //False if after 6pm
Run Code Online (Sandbox Code Playgroud)