Heim >Java >javaLernprogramm >Wie fügt man in Java effizient Ordinalindikatoren (st, nd, rd, th) zu Monatstagszahlen hinzu?
Formatieren des Tages des Monats mit Ordinalindikatoren (11., 21., 23.)
Beim Umgang mit Datumsangaben ist oft eine Ausgabe erforderlich der Tag des Monats mit einem Ordinalindikator, z. B. „11.“, „21.“ oder „23.“ Während die einfache Verwendung des numerischen Tages des Monats ausreichen kann, verbessert das Hinzufügen von Ordinalindikatoren die Klarheit und Lesbarkeit des Datums.
Das bereitgestellte Java-Snippet kann den Tag des Monats mithilfe des SimpleDateFormat als Zahl extrahieren, aber wie Formatieren wir diese Zahl so, dass sie den entsprechenden Ordnungsindikator enthält?
Lösung mit Guava Bibliothek
Die Guava-Bibliothek bietet eine elegante und effiziente Möglichkeit, Ordinalindikatoren an den Tag des Monats anzuhängen. Unten finden Sie eine korrigierte Version des bereitgestellten Snippets:
import static com.google.common.base.Preconditions.*; String getDayOfMonthSuffix(final int n) { checkArgument(n >= 1 && n <= 31, "illegal day of month: " + n); if (n >= 11 && n <= 13) { return "th"; } switch (n % 10) { case 1: return "st"; case 2: return "nd"; case 3: return "rd"; default: return "th"; } }
Diese Funktion verwendet eine Ganzzahl, die den Tag des Monats darstellt, und gibt den entsprechenden Ordinalindikator als Zeichenfolge zurück. Sie verwendet die checkArgument-Methode aus der Preconditions-Klasse von Guava, um zu überprüfen, ob der Tag ein gültiger Wert zwischen 1 und 31 (einschließlich) ist.
Für Tage zwischen dem 11. und 13. gibt die Funktion „th“ zurück, da diese Tage immer verwendet werden „th“-Suffix. Für andere Tage prüft es die letzte Ziffer des Tages mithilfe der Modulo-Operation (%):
Beispielverwendung
Um diese Funktion zu verwenden, übergeben Sie einfach den Tag des Monats als Argument. Zum Beispiel:
int dayOfMonth = 11; String ordinalIndicator = getDayOfMonthSuffix(dayOfMonth); // "th"
Fazit
Das Anhängen von Ordinalindikatoren an den Tag des Monats ist eine häufige Anforderung bei der Datumsformatierung, und die Verwendung der Guava-Bibliothek bietet eine einfache Möglichkeit und effiziente Lösung. Dieses verbesserte Snippet beseitigt den potenziellen Fehler, der in der ursprünglichen Antwort erwähnt wurde, und stellt sicher, dass an jeden Tag des Monats von 1 bis 31 der richtige Ordnungsindikator angehängt wird.
Das obige ist der detaillierte Inhalt vonWie fügt man in Java effizient Ordinalindikatoren (st, nd, rd, th) zu Monatstagszahlen hinzu?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!