Feedback

Quartal eines Datums ermitteln (Erweiterungsmethode)

Sprache: C#

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;
}
public static int Quarter(this DateTime date)
{
    return (date.Month + 2) / 3;
}

4 Kommentare

  1. 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

  2. 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:
    [code]
    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
    [/code]

  3. 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