2015-11-04 48 views
3

我想創建一個函數,計算給定年份的月份,計算星期五13號的星期幾,並返回該數字。到目前爲止,這是我:計算特定年份內13號的星期五的數量

function numberOfFridaythe13thsIn(jahr){ 
    var d = new Date(); 
    d.setFullYear(jahr, 0, 13); 
    var counter = 0; 
    var months = 0; 
    while(months <= 11) { 
     months++; 
     if(d.getDay() == 5 && d.getDate() == 13) { 
      counter++; 
     } 
    } 
    return counter;        
} 

我想象這個代碼開始在某年的1月13日,已通過一個個櫃檯裏的天之將去,並且會循環。我知道我的代碼已關閉,但我可以獲得一些指導嗎?

+0

傳遞什麼? 'jahr' – LearningProcess

+0

@LearningProcess'jahr'是yyyy格式的一年。例如1977年。 – vehcklox

回答

3

您錯過的重要一點是更新每個循環迭代的日期。

function numberOfFridaythe13thsIn(jahr) { 
    var count = 0; 
    for (var month=0; month<12; month++) { 
     var d = new Date(jahr,month,13); 
     if(d.getDay() == 5){ 
      count++; 
     } 
    } 
    return count;        
} 

console.log(numberOfFridaythe13thsIn(2015)); 
4

試試這個:

function numberOfFridaythe13thsIn(jahr){ 
    var d = new Date(); 
    var counter = 0; 
    var month; 

    for(month=0;month<12;month++) 
    { 
    d.setFullYear(jahr, month,13); 
     if (d.getDay() == 5) 
     { 
      counter++; 
     } 
    } 

    return counter;        
} 

基本上有隻有十二天的一年日期13.因此,我們只需遍歷每個並檢查它是否是一個週五或沒有。

0

我認爲這將幫助你......

function numberOfFridaythe13thsIn(jahr) { 
      var counter = 0; 
      for (i = 1; i <= 12; i++) { 
       var d = new Date(i + "/13/" + jahr);       
       if (d.getDay() == 5) { 
        counter++; 
       } 
      } 
      return counter; 

     } 

它是MM/dd/yyyy格式。