Feedback

C# - Ermitteln des Starttages einer KW

Veröffentlicht von am 28.05.2006
(2 Bewertungen)
Nach Übergabe der Kalenderwoche wird in Abhängigkeit von der eingestellten CurrentCulture
GFU-Schulungen  [Anzeige]

VB.NET 2017/2015/2013 Einführung

Das Seminar befähigt Sie zur eigenständigen Entwicklung von anwenderorientierten Programmen in VB.NET, worin auch der Einsatz von Datenbanken enthalten ist.

VB.NET Komplett

Sie stehen vo der Aufgabe, individuelle Anwendungen für Windows zu schreiben. Hier ist VB.NET die optimale Sprache. Sie erlernt sich recht leicht und passt sich komplett in die .NET Umgebung von Microsoft ein. Nach der Schulung entwickeln Sie anwenderfreundliche Programme in VB.NET . Mit den objektorientierten Modellen in VB.NET erzeugen Sie außerdem wiederverwendbare Komponenten.

public static DateTime StartDay(int KW)
{
    try
    {
        int _tempweek = 0;
        if (0 < KW && KW < 54)
        {
            /// summary
            /// auslesen der eingestellten Systemsprache
            /// summary
            CultureInfo CUI = CultureInfo.CurrentCulture;// CreateSpecificCulture("en-US");

            /// summary
            /// festlegen von FirstDate auf den 01.01. des aktuellen Jahres
            /// summary 
            DateTime FirstDate = new DateTime(CUI.DateTimeFormat.Calendar.GetYear(DateTime.Now), 1, 1);
            
            /// summary
            /// solange bis _tempweek = der eingestellten Kalenderwoche ist
            /// summary
            while (_tempweek < KW)
            {
                FirstDate = FirstDate.AddDays(1);
                _tempweek = CUI.Calendar.GetWeekOfYear(FirstDate,
                                                       CUI.DateTimeFormat.CalendarWeekRule,
                                                       CUI.DateTimeFormat.FirstDayOfWeek);
            }
            DayOfWeek FirstDay = CUI.Calendar.GetDayOfWeek(FirstDate);
            
                 if (FirstDate.Year == DateTime.Now.Year)
                 {
                     return FirstDate;
                 }
                 else
                 {
                     throw new ArgumentException();
                 }
            
        }
        else
        {
            throw new ArgumentOutOfRangeException();
        }
    }
    
    catch (ArgumentOutOfRangeException e)
    {
        throw new ArgumentOutOfRangeException(String.Format("Eingabe ausserhalb des Bereiches : 1 - 53", e.Message));
    }
    catch  (ArgumentException ex)
    {
        throw new ArgumentException(String.Format("In diesem Jahr gibt es diese Kalenderwoche nicht",ex.Message));
    }
} 
Abgelegt unter Kalenderwoche, Woche, Kalender, Starttag.

1 Kommentare zum Snippet

herbivore schrieb am 11.12.2006:
Die Konstruktion, die Exceptions ohne Parameter zu erzeugen, sie wieder zu fangen und zu verwerfen und dann neue Exceptions mit Parameter zu erzeugen, leuchtet mir nicht ein und wäre auch echt falsch, wenn von einer der benutzen Methoden eine ArgumentException oder ArgumentOutOfRangeException geworfen würde. Stattdessen sollten die Exceptions gleich richtig erzeugt und geworfen werden.
 

Logge dich ein, um hier zu kommentieren!