Datum ermitteln wenn Jahr, Tag und Wochen bekannt sind

strukturart

Erfahrenes Mitglied
Hallo,

wie kann ich den den Tag als Zahl 1 -31 ermitteln wenn das Jahr die Kalenderwoche und der Wochentag als Name Montag,Dienstag, Mittwoch... bekannt sind ?
 
Prüfe mal diesen Code:
Code:
        var weekdays = { "Sonntag": 0, "Montag": 1, "Dienstag": 2, "Mittwoch": 3, "Donnerstag": 4, "Freitag": 5, "Samstag": 6, "Sonnabend": 6 };
        function getdt(wochentag, jahr, kw) {
            // Nummer des Wochentages ermitteln
            var weekday = weekdays[wochentag];

            // Date-Objekt für 1. 1. des betr. Jahres ermittel
            var dt = new Date(jahr, 0, 1);

            // Die 1. Kalenderwoche ist die, die den 1. Donnerstag des Jahres enthält
            cweekday = dt.getDay();
            while (cweekday != 4) {
                dt.setDate(dt.getDate() + 1);
                cweekday = dt.getDay();
            }

            // Nummer des Tages für diesen Montag ermitteln
            var dayofmonth = dt.getDate();

            // Differenz des zu suchenden Wochentages gegenüber dem Donnerstag ermitteln
            var diff = weekday - 4;

            // Der Sonntag gehört zur folgenden Woche
            if (weekday == 0) diff += 7;

            // Start-Datum für den zu suchenden Wochentag ermitteln
            dt.setDate(dt.getDate() + diff);

            // (Kalenderwoche - 1) * 7 Tage auf das Startdatum aufaddieren
            dt.setDate(dt.getDate() + (kw - 1) * 7);
            return dt;
        }
        console.log(getdt("Sonntag", 2017, 27));
        console.log(getdt("Montag", 2017, 27));
        console.log(getdt("Dienstag", 2017, 27));
        console.log(getdt("Mittwoch", 2017, 27));
        console.log(getdt("Donnerstag", 2017, 27));
        console.log(getdt("Freitag", 2017, 27));
        console.log(getdt("Samstag", 2017, 27));
        console.log(getdt("Sonntag", 2015, 15));
        console.log(getdt("Montag", 2015, 15));
        console.log(getdt("Dienstag", 2015, 15));
        console.log(getdt("Mittwoch", 2015, 15));
        console.log(getdt("Donnerstag", 2015, 15));
        console.log(getdt("Freitag", 2015, 15));
        console.log(getdt("Samstag", 2015, 15));
Ein bisschen kompliziert, aber besser konnte ich es nicht.
 

Neue Beiträge

Zurück