Heim >Java >javaLernprogramm >Wie fügt man in Java effizient Ordinalindikatoren (st, nd, rd, th) zu Monatstagszahlen hinzu?

Wie fügt man in Java effizient Ordinalindikatoren (st, nd, rd, th) zu Monatstagszahlen hinzu?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-20 12:16:12171Durchsuche

How to Efficiently Add Ordinal Indicators (st, nd, rd, th) to Day-of-Month Numbers in Java?

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 (%):

  • Wenn die letzte Ziffer 1 ist, wird „st“ zurückgegeben.
  • Wenn die Wenn die letzte Ziffer 2 ist, wird „nd“ zurückgegeben.
  • Wenn die letzte Ziffer 3 ist, wird „rd“ zurückgegeben.
  • Andernfalls wird zurückgegeben „th“.

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn