Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 闰年函数没有';行不通_Javascript_Calendar - Fatal编程技术网

Javascript 闰年函数没有';行不通

Javascript 闰年函数没有';行不通,javascript,calendar,Javascript,Calendar,我的函数Kalender()中有闰年,但由于某种原因,它在闰年的2月份崩溃(例如2012年)。通过调试,我没有错误。出于某种原因,它不会将月长[1]更改为28 var dayNames = ['Zon', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat']; //Volledige Dagnamen// var dayNamesFull = ['Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Dond

我的函数
Kalender()
中有闰年,但由于某种原因,它在闰年的2月份崩溃(例如2012年)。通过调试,我没有错误。出于某种原因,它不会将月长[1]更改为28

    var dayNames = ['Zon', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];
    //Volledige Dagnamen//
    var dayNamesFull = ['Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag'];
    //Volledige Maandnamen//
    var monthNames = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'Oktober', 'November', 'December'];
    //Maand lengte van 0 - 11//
    var monthLength = [31,28,31,30,31,30,31,31,30,31,30,31]; 
    //Nieuwe datum//
    var today = new Date();
    //Vandaag//
    var day = today.getDay();
    var currentDay = day;
    //vandaag zoekmaand//
    var month = today.getMonth();
    var currentMonth= month;
    //vandaag//
    var vandaag = today.getDate();

    //volledig jaar//
    var Leapyear = today.getYear();
    var year = today.getFullYear();
    var currentYear = year;

    //events in een array//
    var act = ['Opa en Oma 50 jaar getrouwd','Afspraak met de baas', 'Lunchen met Oma','Kleding kopen met mijn moeder','Frank gaat verhuizen', 'School opdracht inleveren','Feestje van Henk', 'Kijken voor een nieuwe auto','Kinderen van school halen','Afspraak doktor 15.00','Zalf halen voor mijn voeten','Onderhoudsbeurt auto','Hond uitlaten','Vaccin krijgen voor reis naar jakarta','Vliegticket boeken', 'Kamer opruimen', 'Hond wegbrengen voor vlooienbehandeling', 'Ov-chipkaart opladen met geld', 'APK keuring Auto', 'Nieuwe velgen voor de auto ophalen in Loenen ad Vecht','Paardenstal opruimen','Golfen met mijn vrienden','Uit eten met mijn schoonfamilie','Werkoverleg overname', ' Bedrijfsbeleid aanpassen'];

//Kalender schrijf functie//    
function Kalender() {
   var buttons = '<button id="vorige" onclick="vorige()">Vorige</button><button id="volgende" onclick="volgende()">Volgende</button>'
   var kalender = "";
 //Leap Year//
    if (month == 1){
        if (year % 4 == 0){
            monthLength = 29;
        }

    }

document.getElementById('Header').innerHTML = monthNames[month]+" "+year+buttons;
    kalender += '<table id="cal"><div id="taken"></div><div id="events"></div>';


        for (var j = 1; j <= monthLength[month]; j++) {
            if ((vandaag == j) && (currentMonth == month) && (currentYear == year)) {
                    kalender += "<td class='tabeldagen' id='dagVandaag'><a id='dag"+j+"' onclick='addEvent (this.id)'>" + j;
            }
                else {
                     kalender += "<td id='"+j+"' class='tabeldagen'><a id='dag"+j+"' onclick='addEvent (this.id)'>"+j;
                }

                    if (j % 7 == 0) {

                kalender += "<tr>";
            }
            kalender += '</td></a>';
        }

    kalender += '</table>';
    document.getElementById('kalen').innerHTML = kalender;
        document.getElementById('taken').innerHTML = dayNamesFull[currentDay]+" "+vandaag+" "+monthNames[currentMonth];

    }

//Volgende Maand functie//
function volgende() {
month = month + 1;
    if(month > 11) {
        month = -1;
        month = month + 1;
        year = year + 1;
    } 
        Kalender();
}
//Vorige maand functie//
function vorige() {
    month = month - 1;
    if(month < 0) {
        month = + 12 ;
        month = month - 1;
        year = year - 1;
    } 
        Kalender();
}
//Voegt event toe aan De desbetreffende dag//
function addEvent (id) {
    if ((year == 2014) && (month == 10)) {
        switch (id) {
            case "dag1":
                document.getElementById("events").innerHTML = act[1];
                break;
            case "dag2":
                document.getElementById("events").innerHTML = act[2];
                break;
            case "dag3":
                document.getElementById("events").innerHTML = act[0];
                break;
            case "dag4":
                document.getElementById("events").innerHTML = act[3];
                break;
            case "dag5":
                document.getElementById("events").innerHTML = act[4];
                break;
            case "dag6":
                document.getElementById("events").innerHTML = act[5];
                break;
            case "dag7":
                document.getElementById("events").innerHTML = act[6];
                break;
            case "dag8":
                document.getElementById("events").innerHTML = act[7];
                break;
            case "dag9":
                document.getElementById("events").innerHTML = act[8];
                break;
            case "dag10":
                document.getElementById("events").innerHTML = act[9];
                break;
            case "dag11":
                document.getElementById("events").innerHTML = act[10];
                break;
            case "dag12":
                document.getElementById("events").innerHTML = act[11];
                break;
            case "dag13":
                document.getElementById("events").innerHTML = act[12];
                break;
            case "dag14":
                document.getElementById("events").innerHTML = act[13];
                break;
            case "dag15":
                document.getElementById("events").innerHTML = act[14];
                break;
            case "dag16":
                document.getElementById("events").innerHTML = act[15];
                break;
            case "dag17":
                document.getElementById("events").innerHTML = act[16];
                break;
            case "dag18":
                document.getElementById("events").innerHTML = act[17];
                break;
            case "dag19":
                document.getElementById("events").innerHTML = act[18];
                break;
            case "dag20":
                document.getElementById("events").innerHTML = act[19];
                break;
            case "dag21":
                document.getElementById("events").innerHTML = act[20];
                break;
            case "dag22":
                document.getElementById("events").innerHTML = act[21];
                break;
            case "dag23":
                document.getElementById("events").innerHTML = act[22];
                break;
            case "dag24":
                document.getElementById("events").innerHTML = act[23];
                break;
            case "dag25":
                document.getElementById("events").innerHTML = act[24];
                break;
            case "dag26":
                document.getElementById("events").innerHTML = act[2];
                break;
            case "dag27":
                document.getElementById("events").innerHTML = act[6];
                break;
            case "dag28":
                document.getElementById("events").innerHTML = act[9];
                break;
            case "dag29":
                document.getElementById("events").innerHTML = act[12];
                break;
            case "dag30":
                document.getElementById("events").innerHTML = act[11];
                break;
            case "dag31":
                document.getElementById("events").innerHTML = act[0];
                break;
        }
    }
}
var dayNames=['Zon','Mon','Tue','Wed','Thu','Fri','Sat'];
//沃勒迪格·达格纳曼//
var dayNamesFull=['Zondag'、'Maandag'、'Dinsdag'、'Woensdag'、'Donderdag'、'Vrijdag'、'Zaterdag'];
//沃勒迪格·马恩德纳曼酒店//
var monthNames=[‘一月’、‘二月’、‘三月’、‘四月’、‘五月’、‘六月’、‘七月’、‘八月’、‘九月’、‘奥克托伯’、‘十一月’、‘十二月’];
//马恩德朗特客货车0-11//
var monthLength=[31,28,31,30,31,30,31,31,30,31];
//Nieuwe基准面//
var today=新日期();
//范达格//
var day=today.getDay();
var currentDay=天;
//vandaag Zoekmand//
var month=today.getMonth();
var currentMonth=月份;
//范达格//
var vandaag=today.getDate();
//沃勒迪格·贾尔//
var Leapyear=today.getYear();
var year=today.getFullYear();
var currentYear=年;
//een数组中的事件//
var act=['Opa en Oma 50 jaar getrouwd'、'Afspraak met de baas'、'Afspraak met Oma'、'Kleding kopen met mijn moeder'、'Frank gaat verhuizen'、'School opdracht inleveren'、'Feestje van Henk'、'Kijken voor een nieuwe auto'、'Kinderen van School halen'Afspraak doktor 15.00'、'Zalf halen halen voor mijn voeten'、'Onderhourt'、'Onderhoudsbeut auto'、'Hondate'、'Hondhutta Uiten Uiten'reis naar jakarta’、‘Vliegticket boeken’、‘Kamer opruimen’、‘Hond wegbrengen voor vlooienbehandeling’、‘Ov chipkaart opladen met geld’、‘APK keuring Auto’、‘Nieuwe velgen voor de Auto Operalen in Loenen ad Vecht’、‘Paardnstal opruimen’、‘Golfen met mijn vrienden’、‘Uit eten met mijn Schoon Familie’、‘Werkoverleg’、‘Werkoverleg overname’、‘Bedring’、‘Bedri’、‘;
//Kalender schrijf functie//
函数Kalender(){
变量按钮='VorigeVolgende'
var kalender=“”;
//闰年//
如果(月份==1){
如果(第%4年==0){
月长=29;
}
}
document.getElementById('Header').innerHTML=monthNames[月]+“”+年+按钮;
kalender+='';

对于(var j=1;j您的
leapYear
测试不正确,这

if (year % 4 == 0) {
应该是

if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
维基百科给出了答案

编辑

对不起,
Kalendar
中的
monthLength
也是一个数组-

//Leap Year//
if (month == 1){
    monthLength[1] = 28; 
    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
        monthLength[1] = 29;
    }
}

我已经试过了,但仍然不起作用。我应该把这个if放在哪里?在我的Kalender()函数中还是其他地方?正如你在我的jsfiddle中看到的那样,it stop在一个月后(闰年的二月)制作日历是passed@ElliotFrisch只有当年份是闰年时,才会将每年2月更改为29!@Lozeputten。你可以有一个本地
monLength
,但你发布的代码会用一个int来隐藏数组。@ElliotFrisch我已经尝试了几年,但它不会检查闰年。现在每个2月都是29日,你所说的隐藏数组是什么意思使用int?@Lozeputten最后编辑一次。
monthLength
是一个数组。您的代码中有
monthLength=29;
//Leap Year//
if (month == 1){
    monthLength[1] = 28; 
    if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) {
        monthLength[1] = 29;
    }
}