お世話になっております。
JAVAの数値による時間計算を行っているのですが、
行き詰まってしまい、助力をお願いしたく存じます。
例えば
現在時刻:20時15分
取得した数値:2030
だった場合
取得した数値の30分前:2000となり
現在時刻は取得した数値の30分以内である。と判定できるようにしたいです。
現在のソースコードですと1000〜2400の間ですと正しく判定できるのですが
0000〜0959の間は正しく判定できません。
0000〜2400の範囲で正しく判定するにはどうしたらよろしいでしょうか。
よろしくお願いいたします。
import java.text.ParsePosition; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; public class SampleClass { public static void main(String[] args) { Date today = new Date(); SimpleDateFormat format =new SimpleDateFormat("HHmm"); Calendar cal = Calendar.getInstance();//30分前 Calendar cal2 = Calendar.getInstance();//実施時間 Calendar cal3 = Calendar.getInstance();//現在時間 String a = format.format(today); format.format(cal3.getTime()); int b = 2030; int o = b; String c = String.valueOf(b) String p = String.valueOf(o) Date tame1 = format.parse(c, new ParsePosition(0));//30分前 Date tame2 = format.parse(p, new ParsePosition(0));//実施時間 Date time4 = format.parse(a, new ParsePosition(0)); cal.setTime(tame1);//30分前 cal.add(Calendar.MINUTE, -30); String time3 =format.format(cal.getTime()); cal2.setTime(tame2);//実施時間 String tame5 =format.format(cal2.getTime()); cal3.setTime(time4);//現在時間 String tame6 =format.format(cal3.getTime()); System.out.println("現在時刻" + tame6);//今の時間の取得 System.out.println("実施時間" +tame5); System.out.println("30分前" +time3);//30分前 if(cal3.after(cal) && cal3.before(cal2)) { System.out.println("ok"); } } }
回答1件
あなたの回答
tips
プレビュー