Feedback

C# - English Ordinals

Veröffentlicht von am 28.03.2013
(1 Bewertungen)
Da ich keine DateTime.ToString()-Formatierung finden konnte, die mir das Datum umgangssprahclich ausgibt, habe ich sie mir eben selbst geschrieben.

Der folgende Code macht aus dem 02.02.2013 den Feb 2nd 2013.

---

Since I wasn't able to find a DateTime.ToString() to print out a date with ordinal numbers, I worte it myself.

The following code transforms 02/02/2013 into Feb 2nd 2013.
GFU-Schulungen  [Anzeige]

XML und .NET Überblick

Um auf dem neuesten Wissensstand zu sein, sollten Sie unser aktuelles ASP .NET Komplett Seminar belegen.
Nach dem Seminar kennen Sie die wichtigsten Strömungen in der Software-Technologie

VB.NET Einführung

Die Schulung zeigt Ihnen, wie Sie einfache, benutzerorientierte Programme, die auf Datenbanken zugreifen, in VB.NET eigenständig entwickeln. 

using System;
using System.Globalization;
using System.Text;

namespace EnglishOrdinals
{
    public static class Program
    {
        private static String GetEnglishOrdinal(DateTime date)
        {
            String lastDayDigit;

            lastDayDigit = date.Day.ToString();
            lastDayDigit = lastDayDigit.Substring(lastDayDigit.Length - 1);
            if ((date.Day >= 11) && (date.Day <= 13))
            {
                lastDayDigit = "0";
            }
            switch (lastDayDigit)
            {
                case ("1"):
                    {
                        return ("st");
                    }
                case ("2"):
                    {
                        return ("nd");
                    }
                case ("3"):
                    {
                        return ("rd");
                    }
                default:
                    {
                        return ("th");
                    }
            }
        }

        public static void Main()
        {
            DateTime date;


            date = DateTime.Now;
            Console.WriteLine(FormatDate(date));
            for (Int32 day = 1; day < 32; day++)
            {
                date = new DateTime(2013, 3, day);
                Console.WriteLine(FormatDate(date));
            }
            Console.ReadLine();
        }

        private static String FormatDate(DateTime date)
        {
            StringBuilder sb;
            CultureInfo ci;

            ci = CultureInfo.GetCultureInfo("en-US");
            sb = new StringBuilder();
            sb.Append(date.ToString("MMM d", ci));
            sb.Append(GetEnglishOrdinal(date));
            sb.Append(date.ToString(" yyyy", ci));
            return (sb.ToString());
        }
    }
}
Abgelegt unter Format, DateTime, Ordinals, ToString.

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!