Maison >Java >javaDidacticiel >Comment ajouter efficacement des indicateurs ordinaux (st, nd, rd, th) aux nombres du jour du mois en Java ?

Comment ajouter efficacement des indicateurs ordinaux (st, nd, rd, th) aux nombres du jour du mois en Java ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-20 12:16:12237parcourir

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

Formatage du jour du mois avec des indicateurs ordinaux (11, 21, 23)

Lorsqu'il s'agit de dates, il est souvent nécessaire d'afficher le jour du mois avec un indicateur ordinal, tel que « 11 », « 21 » ou « 23 ». Bien que la simple utilisation du jour numérique du mois puisse suffire, l'ajout d'indicateurs ordinaux améliore la clarté et la lisibilité de la date.

L'extrait Java fourni peut extraire le jour du mois sous forme de nombre à l'aide de SimpleDateFormat, mais comment Devons-nous formater ce nombre pour inclure l'indicateur ordinal approprié ?

Solution utilisant Guava Bibliothèque

La bibliothèque Guava offre un moyen élégant et efficace d'ajouter des indicateurs ordinaux au jour du mois. Vous trouverez ci-dessous une version corrigée de l'extrait fourni :

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";
    }
}

Cette fonction prend un entier représentant le jour du mois et renvoie l'indicateur ordinal approprié sous forme de chaîne. Elle utilise la méthode checkArgument de la classe Preconditions de Guava pour vérifier que le jour est une valeur valide comprise entre 1 et 31 inclus.

Pour les jours entre le 11 et le 13, la fonction renvoie "th" car ces jours utilisent toujours le suffixe "ème". Pour les autres jours, il vérifie le dernier chiffre du jour en utilisant l'opération modulo (%) :

  • Si le dernier chiffre est 1, il renvoie "st".
  • Si le le dernier chiffre est 2, il renvoie "nd".
  • Si le dernier chiffre est 3, il renvoie "rd".
  • Sinon, il renvoie "th".

Exemple d'utilisation

Pour utiliser cette fonction, passez simplement le jour du mois en argument. Par exemple :

int dayOfMonth = 11;
String ordinalIndicator = getDayOfMonthSuffix(dayOfMonth); // "th"

Conclusion

L'ajout d'indicateurs ordinaux au jour du mois est une exigence courante dans le formatage de la date, et l'utilisation de la bibliothèque Guava fournit une méthode simple et solution efficace. Cet extrait amélioré élimine le bug potentiel mentionné dans la réponse originale et garantit que l'indicateur ordinal correct est ajouté à n'importe quel jour du mois de 1 à 31.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn