ホームページ > Java > &#&チュートリアル > Java で序数標識 (st、nd、rd、th) を月の日の数値に効率的に追加するにはどうすればよいですか?

Java で序数標識 (st、nd、rd、th) を月の日の数値に効率的に追加するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-20 12:16:12
オリジナル
212 人が閲覧しました

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

序数インジケーター (11 日、21 日、23 日) を使用した日付の書式設定

日付を扱う場合、多くの場合、出力が必要になります。 「11日」、「21日」などの序数を示す日付。または「23日」。単に数値の日付を使用するだけでも十分ですが、序数のインジケーターを追加すると、日付の明確さと読みやすさが向上します。

提供されている Java スニペットでは、SimpleDateFormat を使用して月の日付を数値として抽出できますが、その方法は適切な序数標識を含めるようにこの数値をフォーマットしますか?

Guava を使用した解決策Library

Guava ライブラリは、序数インジケーターを月の日に追加するエレガントで効率的な方法を提供します。以下は、提供されたスニペットの修正バージョンです:

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";
    }
}
ログイン後にコピー

この関数は、月の日を表す整数を受け取り、適切な序数インジケーターを文字列として返します。 Guava の Preconditions クラスの checkArgument メソッドを使用して、その日が 1 から 31 までの有効な値であることを確認します。

11 日から 13 日までの日については、関数は「th」を返します。これらの日は常に「th」接尾辞。他の日の場合は、モジュロ演算 (%) を使用してその日の最後の桁をチェックします。

  • 最後の桁が 1 の場合は、「st」を返します。
  • 最後の桁が 2 の場合、「nd」を返します。
  • 最後の桁が 3 の場合、戻ります"rd".
  • それ以外の場合は、"th" を返します。

使用例

この関数を使用するには、単にその日を渡すだけです引数としての月の。例:

int dayOfMonth = 11;
String ordinalIndicator = getDayOfMonthSuffix(dayOfMonth); // "th"
ログイン後にコピー

結論

月の日付に序数インジケーターを追加することは、日付書式設定の一般的な要件であり、Guava ライブラリを使用すると、簡単なそして効率的なソリューション。この改善されたスニペットは、元の回答で言及された潜在的なバグを排除し、正しい序数インジケーターが 1 から 31 までの月の任意の日に追加されるようにします。

以上がJava で序数標識 (st、nd、rd、th) を月の日の数値に効率的に追加するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート