Criando Ordinais Facilmente em C#

Ao trabalhar com números, você pode querer exibi-los como ordinais—algo que indica sua posição em uma sequência, como 1º, 2º ou 3º. Se você é um desenvolvedor C# e se perguntou se há uma maneira fácil de gerar esses ordinais, você não está sozinho.

Neste post do blog, abordaremos como criar ordinais em C# e forneceremos uma função simples para alcançar isso. Vamos dividir em etapas.

Entendendo Ordinais

Os ordinais representam a classificação ou posição de algo em um conjunto. Por exemplo:

  • 1 é representado como 1º
  • 2 é representado como 2º
  • 3 é representado como 3º

O Desafio

Embora C# forneça uma variedade de opções de formatação através de String.Format(), você pode ter notado que não inclui um recurso embutido para criar números ordinais. Isso pode ser uma inconveniência, mas não é insuperável.

Implementando Ordinais em C#

Em vez de depender de funções integradas, você pode criar uma função simples para converter inteiros em sua representação ordinal em string. Veja como fazer isso.

Aqui Está o Código

Você vai querer criar um método estático em seu projeto C#:

public static string AddOrdinal(int num)
{
    if(num <= 0) return num.ToString();

    switch(num % 100)
    {
        case 11:
        case 12:
        case 13:
            return num + "th";
    }

    switch(num % 10)
    {
        case 1:
            return num + "st";
        case 2:
            return num + "nd";
        case 3:
            return num + "rd";
        default:
            return num + "th";
    }
}

Explicação do Código

  1. Validação de Entrada:

    • A função primeiro verifica se o número é menor ou igual a zero. Se for, simplesmente retorna o número como uma string, já que ordinais não existem para valores menores ou iguais a zero.
  2. Tratando Casos Especiais:

    • A função considera as exceções relacionadas aos números que terminam em 11, 12 e 13 (como 11º, 12º e 13º).
  3. Determinando o Sufixo:

    • Em seguida, verifica o último dígito do número para determinar o sufixo apropriado:
      • “st” para 1
      • “nd” para 2
      • “rd” para 3
      • “th” para todos os outros

Exemplo de Uso

Você pode chamar essa função de qualquer lugar em seu código C# assim:

string primeiroOrdinal = AddOrdinal(1); // Retorna "1st"
string segundoOrdinal = AddOrdinal(2); // Retorna "2nd"
string undécimoOrdinal = AddOrdinal(11); // Retorna "11th"

Conclusão

Criar ordinais em C# é simples com uma função personalizada. Embora o .NET framework atualmente não forneça uma maneira embutida de formatar ordinais facilmente, o método compartilhado acima permite que você adicione essa funcionalidade com esforço mínimo.

Tenha em mente que essa implementação não é internacionalizada, ou seja, funciona apenas para ordinais em inglês. Certifique-se de testar e expandir isso se sua aplicação exigir suporte para outros idiomas!

Para resumir, com apenas um pouco de código, você pode adicionar funcionalidade para criar ordinais em C#, melhorando tanto a funcionalidade quanto a experiência do usuário em suas aplicações.