I am trying to create a time range in between two times. I am able to do it in PHP This code gives the array of times with 30 minutes interval when i supply start time , end time and interval. Below is the php script.
//timerange.php <?php /** * create_time_range * * @param mixed $start start time, e.g., 9:30am or 9:30 * @param mixed $end end time, e.g., 5:30pm or 17:30 * @param string $by 1 hour, 1 mins, 1 secs, etc. * @access public * @return void */ function create_time_range($start, $end, $by='30 mins') { $start_time = strtotime($start); $end_time = strtotime($end); $current = time(); $add_time = strtotime('+'.$by, $current); $diff = $add_time-$current; $times = array(); while ($start_time < $end_time) { $times[] = $start_time; $start_time += $diff; } $times[] = $start_time; return $times; } // create array of time ranges $times = create_time_range('9:30', '17:30', '30 mins'); // more examples // $times = create_time_range('9:30am', '5:30pm', '30 mins'); // $times = create_time_range('9:30am', '5:30pm', '1 mins'); // $times = create_time_range('9:30am', '5:30pm', '30 secs'); // and so on // format the unix timestamps foreach ($times as $key => $time) { $times[$key] = date('g:i:s', $time); } print '<pre>'. print_r($times, true).'</pre>'; /* * result * Array ( [0] => 9:30:00 [1] => 10:00:00 [2] => 10:30:00 [3] => 11:00:00 [4] => 11:30:00 [5] => 12:00:00 [6] => 12:30:00 [7] => 1:00:00 [8] => 1:30:00 [9] => 2:00:00 [10] => 2:30:00 [11] => 3:00:00 [12] => 3:30:00 [13] => 4:00:00 [14] => 4:30:00 [15] => 5:00:00 [16] => 5:30:00 ) */ ?> I need to do the equivalent in JAVA code. I think this would be helpful to others.
LocalTimeandDurationfrom java.time, the modern Java date and time API and it won’t be that hard (much easier than withCalendarand the other poorly designed and long outdated date-time classes used in most of the answers).