2016-04-29 14 views
1

Nach this answer, gibt es keine Duration.ofMonths()Warum gibt es keine Duration.ofWeeks()?

weil ein Monat lang variiert.

Aber warum gibt es keine Duration.ofWeeks()? Eine Woche variiert nicht in der Länge, mindestens nicht mehr als ein Tag variiert in der Länge. Und wir haben eine Duration.ofDays().

Also, gibt es einen guten Grund dafür?

+0

Vielleicht wurde das Teilen durch "7" als etwas angesehen, das der Anrufer tun könnte. –

+2

Eine Woche variiert in der Länge. Grundsätzlich können Sie eine "Dauer" nur für eine feste Länge wie Sekunden oder Stunden verwenden. Ein Tag funktioniert, weil er auf 24 Stunden geschätzt wird (obwohl er keine feste feste Länge hat). Der Vertrag wurde ein wenig gelockert, glaube ich. Das macht die Frage auf mein Urteil beruhend. – Tunaki

+0

@PeterLawrey Dann scheint 'ofNanos()', 'ofMillis()', 'ofSeconds()', 'ofMinutes()' und 'ofHours()' redundant zu sein. – user3748908

Antwort

5

In allen APIs muss irgendwo eine Zeile gezeichnet werden. Die Angabe von Duration auf Tage ist streng genommen zweifelhaft, da die Tage unterschiedlich lang sind. Viele Anwendungen entscheiden sich jedoch bewusst für den 24-Stunden-Tag, weshalb die API-Methode gerechtfertigt war.

Im Gegensatz dazu ist die Anzahl der Leute, die Wochen als (24 * 7) Stunden betrachten, sehr niedrig. Der richtige Weg, um eine Woche zu modellieren, ist definitiv Period zu verwenden. So könnte zwar eine Methode zu hinzugefügt werden, es würde jedoch wahrscheinlich zu mehr Fehlern als Glück führen.

Verwandte Themen