GregorianCalendarに問題があるので、よろしければ手伝ってください。まず、私のコードを紹介します。
private String changeClock(String day, String clock, int change) {
String time="";
DateFormat df=new SimpleDateFormat("yyyy-MM-dd hh:mm");
try {
Date d=df.parse(day+" "+clock);
GregorianCalendar g=new GregorianCalendar();
g.setTime(d);
g.add(GregorianCalendar.HOUR_OF_DAY, change);
time=g.get(GregorianCalendar.YEAR)+"-"
+(g.get(GregorianCalendar.MONTH)+1)+"-"
+g.get(GregorianCalendar.DAY_OF_MONTH)+" "
+g.get(GregorianCalendar.HOUR_OF_DAY)+":"
+g.get(GregorianCalendar.MINUTE);
} catch (Exception e) {
e.printStackTrace();
}
return time;
}
何が起こっているのか説明させてください。+ボタンと-ボタンのあるGUIがあります。誰かが+を押すと1時間追加され、-が押されると1時間かかります。
たとえば、時刻は23:00で、+を押すと、すべて問題なく、翌日の00:00にジャンプします。問題は12:00にあります。12:00で、+を押すと、1:00になり、それが続きます。2x12時間または21465x12時間後でも、翌日に移動しません。私がそう言うことができれば、後方に移動する方が少し良いです。00:00になって、-を押すと、昨日の23:00に変わります(日付も変わります)。次に+を押すと、1日先にも変更されます(この場合は今日に変更されます)。
何を間違えたのですか、それともコードにさらに何を書くべきですか?
助けてくれてありがとう。