すみません、私はまだ、私はそれが間違った結果を与えるタイプミスと読みにくいまたはコードで書き込みコードのいずれかに簡単だということを他の回答から集め、あまり批判したくありません。 DirtyDevが、私はあなたがDuration
の使用を許可されない場合があることを認識していますが、他の誰のために:
long remaining = 3_600_000;
Duration remainingTime = Duration.ofMillis(remaining);
long days = remainingTime.toDays();
remainingTime = remainingTime.minusDays(days);
long weeks = days/7;
days %= 7; // or if you prefer, days = days % 7;
long hours = remainingTime.toHours();
remainingTime = remainingTime.minusHours(hours);
long minutes = remainingTime.toMinutes();
remainingTime = remainingTime.minusMinutes(minutes);
long seconds = remainingTime.getSeconds();
System.out.println("" + weeks + " weeks " + days + " days "
+ hours + " hours " + minutes + " minutes " + seconds + " seconds");
この版画:
0 weeks 0 days 1 hours 0 minutes 0 seconds
それは完璧ではないですが、私はそれがだと信じ両方、読みが正しいとロバスト。 Duration
は数時間から数ナノ秒までの時間を意味していたので、今でも手作業で週を行う必要があります。
新年あけましておめでとうございます。
それは何を表していますか?日付からメソッド 'getTime()'の結果?秒数/秒またはその他の単位? –
longは、特定の日付までのミリ秒です。たとえば、3,600,000はint weeks = 0、days = 0、hours = 1、minutes = 0、seconds = 0となります。 – dv02
編集されました。これまでのところ、私はこのような方法がどのように機能するかの背後に論理がないので、何も試していない。 – dv02