Feedback

C# - Quartal eines Datums ermitteln (Erweiterungsmethode)

Veröffentlicht von am 27.01.2016
(2 Bewertungen)
Berechnet das Quartal eines Datums.

Beispiel zur Verwendung:

int quartal = DateTime.Today.Quarter();
public static int Quarter(this DateTime date)
{
    return (date.Month + 2) / 3;
}
Abgelegt unter Quartal, Datum.

4 Kommentare zum Snippet

evilbaschdi schrieb am 28.01.2016:
Interessant gelöst, allerdnigs kommt im März, Juni und September jeweils x,6~ raus, worauf eigentlich aufgerundet werden müsste und somit das falsche Quartal zurück geliefert wird.
rechnet man hingegen date.Month +1 statt +2 und teilt das durch 3, stimmt das Ergebnis nach Rundung auch ohne Fummelei bzgl. 1,6~ = 1
Patrick Semmler schrieb am 28.01.2016:
Hallo evilbaschdi,

hier wird nichts gerundet.
Hast Du den Code mal getestet?
Bei dem Code wird int durch int geteilt, wodurch im Ergebnis die Nachkommastellen abgeschnitten werden.

Ein Test, der alle Monate in einer Schleife durchgeht, bringt das korrekte Ergebnis:

Monat Januar: 1. Quartal
Monat Februar: 1. Quartal
Monat März: 1. Quartal
Monat April: 2. Quartal
Monat Mai: 2. Quartal
Monat Juni: 2. Quartal
Monat Juli: 3. Quartal
Monat August: 3. Quartal
Monat September: 3. Quartal
Monat Oktober: 4. Quartal
Monat November: 4. Quartal
Monat Dezember: 4. Quartal

evilbaschdi schrieb am 28.01.2016:
es ist doch egal, ob ich durch int teile oder durch decimal. wenn der rest ist doch entscheidend. mich würde wundern, dass .net hier nachkommastellen einfach so abschneidet. das wäre sogar fatal, wäre dass der fall.

edit:
gerade mal getestet: du hast tatsächlich recht. ich bin platt O.o
Koopakiller schrieb am 28.01.2016:
.NET hält sich hier an die Standards der Informatik. Eine Integer Division erzeugt stets einen Integer...
 

Logge dich ein, um hier zu kommentieren!