我將為我的 android 應用程式創建一個計數計時器。我想計算從當前時間到 24:00 的小時數。我找不到任何解決方案,而且用毫秒計算它對我來說太復雜了。
例如:
現在時間是: 22.55 到 00.00 還有 1 小時 5 分鐘
我將使用以下方法制作計數計時器:
剩余時間: 1 小時 5 分鐘
任何人都可以幫助我嗎?非常感謝。
uj5u.com熱心網友回復:
您可以java.time.Duration用來計算現在和午夜之間的時差:
LocalDateTime now = LocalDateTime.now();
LocalDateTime midnight = LocalDate.now().plusDays(1).atTime(0, 0);
Duration between = Duration.between(now, midnight);
System.out.printf("Remaining: %d hours %d minutes",
between.toHours(), between.toMinutes() % 60);
uj5u.com熱心網友回復:
日子并不總是 24 小時長
在某些時區的某些日期,一天不是 24 小時。有些日子可能會持續 23、23.5、25 或其他一些小時。
所以讓java.time確定第二天的第一時刻。
ZoneId z = ZoneId.of( "Asia/Tokyo" ) ; // Or ZoneId.systemDefault() ;
ZonedDateTime zdt = ZonedDateTime.now( z ).with( LocalTime.of( 22 , 55 ) ) ;
ZonedDateTime firstMomentOfTomorrow = zdt.toLocalDate().plusDays( 1 ).atStartOfDay( z ) ;
Duration d = Duration.between( zdt , firstMomentOfTomorrow ) ;
System.out.println(
zdt.toString() "/" firstMomentOfTomorrow.toString() " = " d.toString()
);
在 IdeOne.com 上查看此代碼的實時運行情況。
2021-12-28T22:55 09:00[亞洲/東京]/2021-12-29T00:00 09:00[亞洲/東京] = PT1H5M
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/396119.html
