私は2回持っています。開始と終了。今、私はそれらの間のすべての時間を 1 時間のギャップで表示したいと考えています。
例えば:
私は00:00-23:55です。
出力:-
午前 12:00 - 午前 01:00 午前
01:00 - 午前 2:00 など。
これを見つけるのを手伝ってください。
前もって感謝します。
私は2回持っています。開始と終了。今、私はそれらの間のすべての時間を 1 時間のギャップで表示したいと考えています。
例えば:
私は00:00-23:55です。
出力:-
午前 12:00 - 午前 01:00 午前
01:00 - 午前 2:00 など。
これを見つけるのを手伝ってください。
前もって感謝します。
String date1 = "26/02/2011";
String time1 = "00:00 AM";
String date2 = "26/02/2011";
String time2 = "12:00 PM";
String format = "dd/MM/yyyy hh:mm a";
SimpleDateFormat sdf = new SimpleDateFormat(format);
Date dateObj1 = sdf.parse(date1 + " " + time1);
Date dateObj2 = sdf.parse(date2 + " " + time2);
System.out.println("Date Start: "+dateObj1);
System.out.println("Date End: "+dateObj2);
//Date d = new Date(dateObj1.getTime() + 3600000);
long dif = dateObj1.getTime();
while (dif < dateObj2.getTime()) {
Date slot = new Date(dif);
System.out.println("Hour Slot --->" + slot);
dif += 3600000;
}
出力:
Date Start: Sat Feb 26 00:00:00 IST 2011
Date End: Sat Feb 26 12:00:00 IST 2011
Hour Slot --->Sat Feb 26 00:00:00 IST 2011
Hour Slot --->Sat Feb 26 01:00:00 IST 2011
Hour Slot --->Sat Feb 26 02:00:00 IST 2011
Hour Slot --->Sat Feb 26 03:00:00 IST 2011
Hour Slot --->Sat Feb 26 04:00:00 IST 2011
Hour Slot --->Sat Feb 26 05:00:00 IST 2011
Hour Slot --->Sat Feb 26 06:00:00 IST 2011
Hour Slot --->Sat Feb 26 07:00:00 IST 2011
Hour Slot --->Sat Feb 26 08:00:00 IST 2011
Hour Slot --->Sat Feb 26 09:00:00 IST 2011
Hour Slot --->Sat Feb 26 10:00:00 IST 2011
Hour Slot --->Sat Feb 26 11:00:00 IST 2011
命名は適切ではないかもしれませんが、より良い形式にすることもできますが、試行錯誤の結果、このコードは機能します。
00:00 ~ 23:55 については、「-」を使用して解析します。最初の部分は「startTime」、2 番目の部分は「endTime」になります。
package demo.orientaion.change.run_cmd;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
public class TimeDiffCalc {
public TimeDiffCalc() {
}
public Calendar addHr(String startTime) {
SimpleDateFormat df = new SimpleDateFormat("HH:mm");
Date d;
Calendar gc = null ;
try {
d = df.parse(startTime);
gc = new GregorianCalendar();
gc.setTime(d);
gc.add(Calendar.HOUR, 1);
} catch (ParseException e) {
e.printStackTrace();
}
return gc;
}
public void diffCalc(String time1, String time2) {
long diff=0;
SimpleDateFormat format = new SimpleDateFormat("HH:mm");
Date date1 = null;
try {
date1 = format.parse(time1);
Date date2 = format.parse(time2);
diff = date2.getTime() - date1.getTime();
Date date3 ;
String string = time1;
while(true)
{
Calendar gc = addHr(string) ;
date3 = gc.getTime();
string = getHrMin(gc.get(Calendar.HOUR_OF_DAY))+":"+getHrMin(gc.get(Calendar.MINUTE));
if(date2.getTime()-date3.getTime()>=0)
{
System.out.println("diff Hours :: "+string);
}
else
{
break;
}
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Difference in Houres:"+getDate(diff));
}
private String getDate(long diff) {
long hours=diff/(60*60*1000);
long minutes=(diff%(60*60*1000))/(60*1000);
long sec=((diff%(60*60*1000))%(60*1000))/1000;
String formateddate="";
if(hours<10)
{
formateddate="0"+hours;
}else{
formateddate=""+hours;
}
if(minutes<10)
{
formateddate=formateddate+":0"+minutes;
}else{
formateddate=formateddate+":"+minutes;
}
if(sec<10)
{
formateddate=formateddate+":0"+sec;
}else{
formateddate=formateddate+":"+sec;
}
return formateddate;
}
private String getHrMin(int time) {
String formatedTime;
if(time<10)
{
formatedTime="0"+time;
}else{
formatedTime=""+time;
}
return formatedTime;
}
/**
* @param args
*/
public static void main(String[] args) {
TimeDiffCalc calc = new TimeDiffCalc();
String startTime = "00:00:00";
String endTime = "23:53:00";
calc.diffCalc(startTime, endTime);
}
}