TimeStampクラスを使用して、秒をDay、Hours、Minutes、Secondsに変換しています。次のコードを使用しました
public static void calculateTime(long seconds) {
int day = (int)TimeUnit.SECONDS.toDays(seconds);
long hours = TimeUnit.SECONDS.toHours(seconds) - TimeUnit.SECONDS.toHours(TimeUnit.SECONDS.toDays(seconds));
long minute = TimeUnit.SECONDS.toMinutes(seconds) - TimeUnit.SECONDS.toMinutes(TimeUnit.SECONDS.toHours(seconds));
long second = TimeUnit.SECONDS.toSeconds(seconds) - TimeUnit.SECONDS.toSeconds(TimeUnit.SECONDS.toMinutes(seconds));
System.out.println("Day " + day + " Hour " + hours + " Minute " + minute + " Seconds " + second);
}
しかし、私は正しい結果を得ていません。たとえば、このメソッドを呼び出すと、の代わりにcalculateTime(3600)
結果が得られます。Day 0 Hour 1 Minute 60 Seconds 3540
Day 0 Hour 1 Minute 0 Seconds 0
私のロジックの何が問題になっていますか?私を助けてください。