私には、StartTimeとEndTimeのような2つの文字列変数があります。 StartTimeでEndTimeを引いてTotalTimeを計算する必要があります。時間とミンス形式でAndroidで2回の差分を計算する
StartTime = "08:00 AM";
EndTime = "04:00 PM";
TOTALTIMEを次のようによう
のStartTimeと終了時間のフォーマットです。 Androidでこれを計算する方法は?
私には、StartTimeとEndTimeのような2つの文字列変数があります。 StartTimeでEndTimeを引いてTotalTimeを計算する必要があります。時間とミンス形式でAndroidで2回の差分を計算する
StartTime = "08:00 AM";
EndTime = "04:00 PM";
TOTALTIMEを次のようによう
のStartTimeと終了時間のフォーマットです。 Androidでこれを計算する方法は?
下記のコードを試してください。
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm");
date1 = simpleDateFormat.parse("08:00 AM");
date2 = simpleDateFormat.parse("04:00 PM");
long difference = date2.getTime() - date1.getTime();
days = (int) (difference/(1000*60*60*24));
hours = (int) ((difference - (1000*60*60*24*days))/(1000*60*60));
min = (int) (difference - (1000*60*60*24*days) - (1000*60*60*hours))/(1000*60);
hours = (hours < 0 ? -hours : hours);
Log.i("======= Hours"," :: "+hours);
出力 - 時間:: 8
がDateFormatを見てください、あなたはパース(文字列のソース)メソッドを使用して文字列を解析するために使用することができ、あなたは簡単に2つのDateを操作することができますあなたが望むものを得るためのオブジェクト。日付を表示する
DateFormat df = DateFormat.getInstance();
Date date1 = df.parse(string1);
Date date2 = df.parse(string2);
long difference = date1.getTime() - date2.getTime();
days = (int) (difference/(1000*60*60*24));
hours = (int) ((difference - (1000*60*60*24*days))/(1000*60*60));
min = (int) (difference - (1000*60*60*24*days) - (1000*60*60*hours))/(1000*60);
String diffHours = df.format(hours);
日差については
Date myDate = new Date(difference);
:修正されたコードとして以下:
String diff = df.format(myDate);
注
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm");
try {
date1 = simpleDateFormat.parse("08:00 AM");
} catch (ParseException e) {
e.printStackTrace();
}
try {
date2 = simpleDateFormat.parse("04:00 PM");
} catch (ParseException e) {
e.printStackTrace();
}
long difference = date2.getTime() - date1.getTime();
int days = (int) (difference/(1000 * 60 * 60 * 24));
int hours = (int) ((difference - (1000 * 60 * 60 * 24 * days))/(1000 * 60 * 60));
int min = (int) (difference - (1000 * 60 * 60 * 24 * days) - (1000 * 60 * 60 * hours))
/(1000 * 60);
hours = (hours < 0 ? -hours : hours);
Log.i("======= Hours", " :: " + hours);
....これを試してみてください。これはChirag Ravalによって提供されます。これは、Chirag p 22:00〜07:00に時間を見つけようとするといくつか問題がありました。
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("HH:mm");
Date startDate = simpleDateFormat.parse("22:00");
Date endDate = simpleDateFormat.parse("07:00");
long difference = endDate.getTime() - startDate.getTime();
if(difference<0)
{
Date dateMax = simpleDateFormat.parse("24:00");
Date dateMin = simpleDateFormat.parse("00:00");
difference=(dateMax.getTime() -startDate.getTime())+(endDate.getTime()-dateMin.getTime());
}
int days = (int) (difference/(1000*60*60*24));
int hours = (int) ((difference - (1000*60*60*24*days))/(1000*60*60));
int min = (int) (difference - (1000*60*60*24*days) - (1000*60*60*hours))/(1000*60);
Log.i("log_tag","Hours: "+hours+", Mins: "+min);
結果は次のようになります。営業時間:9、ミンス:0
Try simple piece of code using For 24 hour time
StartTime = "10:00";
EndTime = "13:00";
here starthour=10 and end hour=13
if(TextUtils.isEmpty(txtDate.getText().toString())||TextUtils.isEmpty(txtDate1.getText().toString())||TextUtils.isEmpty(txtTime.getText().toString())||TextUtils.isEmpty(txtTime1.getText().toString()))
{
Toast.makeText(getApplicationContext(), "Date/Time fields cannot be blank", Toast.LENGTH_SHORT).show();
}
else {
if (starthour > endhour) {
Toast.makeText(getApplicationContext(), "Start Time Should Be Less Than End Time", Toast.LENGTH_SHORT).show();
} else if (starthour == endhour) {
if (startmin > endmin) {
Toast.makeText(getApplicationContext(), "Start Time Should Be Less Than End Time", Toast.LENGTH_SHORT).show();
}
else{
tvalid = "True";
}
} else {
// Toast.makeText(getApplicationContext(),"Sucess"+(endhour-starthour)+(endmin-startmin),Toast.LENGTH_SHORT).show();
tvalid = "True";
}
}
same for date also
持続クラスは、Androidで、この場合に便利です:http://stackoverflow.com/a/12739537/693752 – Snicolas