Feedback

Monat: Zahl zu Gekürztem String

Sprache: C#

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 [code]string month = MonthToShortString(12, Language.Deutsch);[/code] setzt month auf "Dez"! [code]string month = MonthToShortString(5, Language.English);[/code] 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;
}
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;
}

2 Kommentare

  1. Hallo Darius,
    hier etwas kürzer:

    [code]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“);
    }[/code]

    [u]Beispielaufrufe:[/u]

    Console.WriteLine(MonthToShortString(1, new CultureInfo(„de-DE“)));
    Console.WriteLine(MonthToShortString(1, new CultureInfo(„en-US“)));