2010-11-02 37 views

回答

0
function HowManySaturdays($month) 
{ 
    $date = explode(',', $month); 
    $date = date_parse($date[1] . '-' . $date[0]); 
    $days = cal_days_in_month(CAL_GREGORIAN, $date['month'], $date['year']); 
    $timestamp = jdtounix(gregoriantojd($date['month'], 1, $date['year'])); 
    $date = getdate($timestamp); 
    return (floor($days/7)) + ((($days % 7) + $date['wday'] >=7) ? 1 : 0); 
} 
+0

嗨巴魯克,感謝您的腳本。我做了另一個。如果需要,請檢查答案 – Elamurugan 2010-11-02 08:24:55

1

蠻力方法:迭代指定月份的所有天;對於星期六的任何一天,增加一個計數器變量。完成循環後,返回計數器。

更好的方法:找到給定月份中的第一個星期六,然後增加7,直到您到達下個月。

更好的方法:找到給定月份中第一天的星期幾。如果不是星期六,則增加達到星期六所需的天數。然後繼續使用方法2.

更好:使用方法2查找第一個星期六。查找月份中的天數。這兩個給你剩餘的月份天數。除以7並向下取整。

+0

嗨,感謝您的評論,根據您的想法做了一個腳本。檢查答案 – Elamurugan 2010-11-02 08:26:31

0
function HowManyDays($day,$month,$year) 
{ 
    $d = date("t", mktime(0,0,0,$month,1,$year)); 
    $n = 1; 
    $noOfDays = array(); 
    echo "<b>".$day."'s </b> found in $month,$year <br>"; 
    for ($i = 1; $i <= $d; $i++) { 
     $c = date("l", mktime(0,0,0,$month,$i,$year)); 
     if (strtolower($c) == strtolower($day)) { 
      $noOfDays[$n] = $i."/".$month."/".$year; 
      echo "<b>".$c." On ".$i."/".$month."/".$year."</b><br>"; 
      $n++; 
     } else { 
      //echo $c." On ".$i."/".$month."/".$year."<br>"; 
     } 

    } 
    return $noOfDays; 
} 

$noOfDays = HowManyDays("Saturday",1,2010); 
print_r($noOfDays); 

這將返回天,其每月的日期作爲數組。