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]

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

C# 2017/2015/2013 Aufbau

In dieser Schulung lernen Sie fortgeschrittene Techniken im Bereich .Net C#. Dabei stehen neben den eigentlichen Techniken auch architektonische Aspekte im Mittelpunkt.

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!