Форматирование дат с порядковыми суффиксами в VB.NET: методы и примеры

Чтобы отформатировать дату так, чтобы она включала «1-е», «2-е», «3-е» и т. д. в VB.NET, вы можете использовать следующие методы:

Метод 1. Пользовательское форматирование даты

Dim dateValue As DateTime = DateTime.Now
Dim formattedDate As String = dateValue.ToString("d MMMM yyyy")
Dim day As String = dateValue.Day.ToString()
Dim suffix As String = GetNumberSuffix(dateValue.Day)
Dim formattedDateWithSuffix As String = formattedDate.Replace(day, day + suffix)
Function GetNumberSuffix(number As Integer) As String
    Select Case number
        Case 1, 21, 31
            Return "st"
        Case 2, 22
            Return "nd"
        Case 3, 23
            Return "rd"
        Case Else
            Return "th"
    End Select
End Function

Метод 2. Пользовательское форматирование даты с использованием функции DayOrdinal

Dim dateValue As DateTime = DateTime.Now
Dim formattedDate As String = dateValue.ToString("d MMMM yyyy")
Dim formattedDateWithSuffix As String = formattedDate.Replace(dateValue.Day.ToString(), DayOrdinal(dateValue.Day))
Function DayOrdinal(day As Integer) As String
    Dim suffix As String = "th"
    Select Case day Mod 10
        Case 1
            suffix = "st"
        Case 2
            suffix = "nd"
        Case 3
            suffix = "rd"
    End Select
    If day Mod 100 >= 11 AndAlso day Mod 100 <= 13 Then
        suffix = "th"
    End If
    Return day.ToString() + suffix
End Function

Метод 3: использование словаря порядковых суффиксов

Dim dateValue As DateTime = DateTime.Now
Dim formattedDate As String = dateValue.ToString("d MMMM yyyy")
Dim suffixes As New Dictionary(Of Integer, String) From {
    {1, "st"},
    {2, "nd"},
    {3, "rd"}
}
Dim day As Integer = dateValue.Day
Dim suffix As String = "th"
If suffixes.ContainsKey(day Mod 10) AndAlso Not (day Mod 100 >= 11 AndAlso day Mod 100 <= 13) Then
    suffix = suffixes(day Mod 10)
End If
Dim formattedDateWithSuffix As String = formattedDate.Replace(day.ToString(), day.ToString() + suffix)

Это всего лишь несколько методов форматирования дат с порядковыми суффиксами в VB.NET. Вы можете выбрать метод, который лучше всего соответствует вашим потребностям, или изменить его в соответствии со своими конкретными требованиями.