2

I would like to use the Calendar class by using Calendar.getInstance().getTime() to get current time and set another 2 Calendar variable.

How can I check if the current is between the 2 set time, other than comparing using getHour and getMinutes

Balaji
  • 1,009
  • 7
  • 21
user3564965
  • 77
  • 2
  • 10

3 Answers3

0

Try like this:

String str1= "21:19:17";
Date t1 = new SimpleDateFormat("HH:mm:ss").parse(str1);
Calendar c1 = Calendar.getInstance();
c1.setTime(t1 );

String str2 = "12:32:00";
Date t2 = new SimpleDateFormat("HH:mm:ss").parse(str2);
Calendar c2= Calendar.getInstance();
c2.setTime(t2);
c2.add(Calendar.DATE, 1);

String currenttime = "02:13:47";
Date d = new SimpleDateFormat("HH:mm:ss").parse(currenttime);
Calendar c3 = Calendar.getInstance();
c3.setTime(d);
c3.add(Calendar.DATE, 1);

Date x = c3.getTime();
if (x.after(c1.getTime()) && x.before(c2.getTime()))
{
    System.out.println("Yes it is in the range");
}
Rahul Tripathi
  • 168,305
  • 31
  • 280
  • 331
0
    String timeFrom = "12:00:00";
    String timeTo = "15:00:00";
    String timePoint="14:30:20";

    Long timeFromVal = Time.parse(timeFrom);
    Long timeToVal = Time.parse(timeTo);
    Long timePointVal = Time.parse(timePoint);

    if(timePointVal>timeFromVal && timePointVal<timeToVal)            
            Log.i("Time report ","Time is Valid.");
0

First create a re-usable method to set time to Calendar:

private Calendar setTimeToCalendar(String dateFormat, String date, boolean addADay) throws ParseException {
    Date time = new SimpleDateFormat(dateFormat).parse(date);
    Calendar cal = Calendar.getInstance();
    cal.setTime(time );

    if(addADay) {
        cal.add(Calendar.DATE, 1);
    }
    return cal;
}

Now use this method:

String dateFormat = "HH:mm:ss";
String startTime= "20:20:20";
String endTime= "12:12:12";
String currentTime = new SimpleDateFormat(dateFormat).format(new Date());

Calendar cStart = setTimeToCalendar(dateFormat, startTime, false);
Calendar cEnd = setTimeToCalendar(dateFormat, endTime, true);
Calendar cNow = setTimeToCalendar(dateFormat, currentTime, true);   
Date curDate = cNow.getTime();

if (curDate.after(cStart.getTime()) && curDate.before(cEnd.getTime())) {
    System.out.println("Date is in range");
} else {
    System.out.println("Date is out of range");
}
Kartic
  • 2,935
  • 5
  • 22
  • 43