Formatting the Day of the Month with Ordinal Indicators ("th", "st", "nd", "rd")
When representing the day of the month as a number, it can be valuable to include an ordinal indicator to specify whether it falls on the 1st, 2nd, 3rd, etc. This article delves into how to achieve this formatting using programming techniques.
While using SimpleDateFormat("d") provides the day of the month as a numeral (e.g., 11, 21, 23), achieving ordinal indicator formatting requires further steps. One approach involves utilizing an external library like Guava. Guava's getDayOfMonthSuffix method takes an integer representing the day of the month and returns an appropriate suffix: "st" for 1, "nd" for 2, "rd" for 3, and "th" otherwise.
For example, the following code demonstrates its use:
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"; } }
This method ensures that ordinal indicators are properly applied to the day of the month, accommodating edge cases like 7th, 17th, and 27th.
The above is the detailed content of How to Programmatically Add Ordinal Indicators (st, nd, rd, th) to Day-of-Month Numbers?. For more information, please follow other related articles on the PHP Chinese website!