Feedback

C# - Monat: Zahl zu Gekürztem String

Veröffentlicht von am 08.02.2013
(2 Bewertungen)
Ich weiß nicht ob es irgendeinen anderen/besseren Weg gibt und weil die Methode doch eher lang ist und früher oder später braucht man sie doch... :P

string month = MonthToShortString(12, Language.Deutsch);

setzt month auf "Dez"!
string month = MonthToShortString(5, Language.English);

setzt month auf "May"

Natürlich kann man:
1. Weitere Sprachen hinzufügen ;)
2. Die Sprachen ändern
3. Eine Sprache entfernen
4. Die Methode auf Ganze Namen umformen

[Edit]: Also es gibt einen besseren Weg:
Von Jan in den Kommentaren. Ich habs nicht getestet, aber vertrau ihm einfach mal..
enum Language {Deutsch, English};

private string MonthToShortString(int month, Language l)
{
    string strMonth = String.Empty;
    switch (month)
    {
        case 1:
            strMonth = "Jan";
            break;
        case 2:
            strMonth = "Feb";
            break;
        case 3:
            switch (l)
            {
                case Language.Deutsch:
                    strMonth = "Mär";
                    break;
                case Language.English:
                    strMonth = "Mar";
                    break;
            }
            break;
        case 4:
            strMonth = "Apr";
            break;
        case 5:
            switch (l)
            {
                case Language.Deutsch:
                    strMonth = "Mai";
                    break;
                case Language.English:
                    strMonth = "May";
                    break;
            }
            break;
        case 6:
            strMonth = "Jun";
            break;
        case 7:
            strMonth = "Jul";
            break;
        case 8:
            strMonth = "Aug";
            break;
        case 9:
            strMonth = "Sep";
            break;
        case 10:
            switch (l)
            {
                case Language.Deutsch:
                    strMonth = "Okt";
                    break;
                case Language.English:
                    strMonth = "Oct";
                    break;
            }
            break;
       case 11:
            strMonth = "Nov";
            break;
        case 12:
            switch (l)
            {
                case Language.Deutsch:
                    strMonth = "Dez";
                    break;
                case Language.English:
                    strMonth = "Dec";
                    break;
            }
            break;
    }
    return strMonth;
}
Abgelegt unter String, Monat, Gekürzt.

2 Kommentare zum Snippet

Jan Welker schrieb am 08.02.2013:
Hallo Darius,
hier etwas kürzer:

private string MonthToShortString(int month, CultureInfo culture)
{
if (month < 1 || month > 12) throw new ArgumentException("Invalid month.");
Thread.CurrentThread.CurrentCulture = culture;
return new DateTime(2013, month, 1).ToString("MMM");
}


Beispielaufrufe:

Console.WriteLine(MonthToShortString(1, new CultureInfo("de-DE")));
Console.WriteLine(MonthToShortString(1, new CultureInfo("en-US")));
dariusarnold schrieb am 10.02.2013:
Cool.. Danke :D Bin nicht so der Pro.. Aber ich probier mal ^^das^^.
:)
 

Logge dich ein, um hier zu kommentieren!