Comparing Time in Hours & Minutes

G

guyzdancin

I'm parsing a csv file that contains data in 15 minute intervals for a
day. The data is electricity consumption. The day is divided up into
segments of high, medium and low billing rates. For example, 00:00:00
to 10:45:00 is low rate, 11:00:00 to 18:45:00 is medium rate and
19:00:00 to 23:45:00 is high rate. I need a compare method so that I
can determine if any given time is greater or less than another.

Below is a sample of the file. The fourth field is time.

170,3EA,1041,18:00:00,.2847
170,3EA,1041,18:15:00,.2649
170,3EA,1041,18:30:00,.2486
170,3EA,1041,18:45:00,.3585
170,3EA,1041,19:00:00,.4179
170,3EA,1041,19:15:00,.4846
170,3EA,1041,19:30:00,.3480
170,3EA,1041,19:45:00,.2239
170,3EA,1041,20:00:00,.2600
170,3EA,1041,20:15:00,.2024
170,3EA,1041,20:30:00,.2126
170,3EA,1041,20:45:00,.3027
170,3EA,1041,21:00:00,.2882
170,3EA,1041,21:15:00,.2559
170,3EA,1041,21:30:00,.1392
170,3EA,1041,21:45:00,.1373

Thanks in advance
 
K

klynn47

What about putting these into an array called lines.

String[] tokens = lines[counter].split(",");

tokens = tokens[3].split(":");

int hours = Integer.parseInt(tokens[0]);
int minutes = Integer.parseInt(tokens[1]);
int seconds = Integer.parseInt(tokens[2]);

Then you could figure out how many seconds there are between midnight
and that time.
 
R

Rhino

guyzdancin said:
I'm parsing a csv file that contains data in 15 minute intervals for a
day. The data is electricity consumption. The day is divided up into
segments of high, medium and low billing rates. For example, 00:00:00
to 10:45:00 is low rate, 11:00:00 to 18:45:00 is medium rate and
19:00:00 to 23:45:00 is high rate. I need a compare method so that I
can determine if any given time is greater or less than another.

Below is a sample of the file. The fourth field is time.

170,3EA,1041,18:00:00,.2847
170,3EA,1041,18:15:00,.2649
170,3EA,1041,18:30:00,.2486
170,3EA,1041,18:45:00,.3585
170,3EA,1041,19:00:00,.4179
170,3EA,1041,19:15:00,.4846
170,3EA,1041,19:30:00,.3480
170,3EA,1041,19:45:00,.2239
170,3EA,1041,20:00:00,.2600
170,3EA,1041,20:15:00,.2024
170,3EA,1041,20:30:00,.2126
170,3EA,1041,20:45:00,.3027
170,3EA,1041,21:00:00,.2882
170,3EA,1041,21:15:00,.2559
170,3EA,1041,21:30:00,.1392
170,3EA,1041,21:45:00,.1373

Thanks in advance

I'll assume that you can split the time from each line of the CSV file into
hours and minutes on your own; there are various ways to do that.

Now, for any pair of times you want to compare, convert each time into an
instance of Calendar; you only need to specify the HOUR_OF_DAY and MINUTE.
Then, convert the Calendar representing a given time into an instance of
java.util.Date. Then, use the before() and after() methods in the
java.util.Date class to compare any pair of Dates. This example illustrates
the basic technique for creating the Calendars and Dates and then comparing
the Dates:

/* Create calendar for first Time. */

Calendar cal1 = Calendar.getInstance();
cal1.set(Calendar.HOUR_OF_DAY, 10);

cal1.set(Calendar.MINUTE, 45);

Date time1 = cal1.getTime();



/* Create Calendar for second Time. */

Calendar cal2 = Calendar.getInstance();

cal2.set(Calendar.HOUR_OF_DAY, 10);

cal2.set(Calendar.MINUTE, 45);

Date time2 = cal2.getTime();



/* Compare the two times to see which was earlier. */

if (time2.before(time1)) {

System.out.println("Time2 is before Time1.");

} else {

System.out.println("Time1 is before or equal to Time2.");

}



Rhino
 
K

Kevin McMurtrie

guyzdancin said:
I'm parsing a csv file that contains data in 15 minute intervals for a
day. The data is electricity consumption. The day is divided up into
segments of high, medium and low billing rates. For example, 00:00:00
to 10:45:00 is low rate, 11:00:00 to 18:45:00 is medium rate and
19:00:00 to 23:45:00 is high rate. I need a compare method so that I
can determine if any given time is greater or less than another.

Below is a sample of the file. The fourth field is time.

170,3EA,1041,18:00:00,.2847
170,3EA,1041,18:15:00,.2649
170,3EA,1041,18:30:00,.2486
170,3EA,1041,18:45:00,.3585
170,3EA,1041,19:00:00,.4179
170,3EA,1041,19:15:00,.4846
170,3EA,1041,19:30:00,.3480
170,3EA,1041,19:45:00,.2239
170,3EA,1041,20:00:00,.2600
170,3EA,1041,20:15:00,.2024
170,3EA,1041,20:30:00,.2126
170,3EA,1041,20:45:00,.3027
170,3EA,1041,21:00:00,.2882
170,3EA,1041,21:15:00,.2559
170,3EA,1041,21:30:00,.1392
170,3EA,1041,21:45:00,.1373

Thanks in advance

A GregorianCalendar can decode millisecond timestamps into calendar
components so you can compare hours, minutes, and seconds of a day
easily.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,754
Messages
2,569,527
Members
44,998
Latest member
MarissaEub

Latest Threads

Top