如何统计任意月份的星期数和星期几
好吧,我想我有你:“什么是一周的开始日”
$days = cal_days_in_month(CAL_GREGORIAN, 1, 2011);
$week_day = date("N", mktime(0,0,0,1,1,2011));
$weeks = ceil(($days + $week_day)/7);
echo $weeks;
此代码返回一个月的天数,周数。
<?php
for ($year = 2011; $year <= 2012; $year++){
for ($month = 1; $month <= 12; $month++){
$num_of_days = date("t", mktime(0,0,0,$month,1,$year));
$month_Year = date("F",mktime(0, 0, 0, $month, 1, $year));
echo "<b>$month_Year, $year </b><BR>";
echo "Number of days = $num_of_days <BR>";
$firstdayname = date("D", mktime(0, 0, 0, $month, 1, $year));
$firstday = date("w", mktime(0, 0, 0, $month, 1, $year));
$lastday = date("t", mktime(0, 0, 0, $month, 1, $year));
$lastdayname = date("D", mktime(0, 0, 0, $month, $lastday, $year));
echo "First day of the month = $firstday,$firstdayname <BR> ";
echo "Last day of the month = $lastday,$lastdayname <BR> ";
$no_of_weeks = 1;
$count_weeks = 0;
while($no_of_weeks <= ($lastday+$firstday)){
$no_of_weeks += 7;
$count_weeks++;
}
echo "Number Of weeks = $count_weeks <br><br>";
}
}
?>
对不起,我似乎无法确定$ lastday和$ firstday从哪里来? – 2011-03-28 13:09:25
哦!我以前编写过代码,以查明每个月的第一天和最后一天。忘了删除它。 – 2011-03-28 13:17:00
现在编辑。核实 ! – 2011-03-28 13:19:53
这取决于
假设我们每周的第一天是星期一,意味着如果一个月有5个星期一,我们将有一个月有5个星期。
function nbweeks_of_month($month, $year){
$nb_days = cal_days_in_month(CAL_GREGORIAN, $month, $year);
$first_day = date('w', mktime(0, 0, 0, $month, 1, $year));
if($first_day > 1 && $first_day < 6){
// month started on Tuesday-Friday, no chance of having 5 weeks
return 4;
} else if($nb_days == 31) return 5;
else if($nb_days == 30) return ($first_day == 0 || $first_day == 1)? 5:4;
else if($nb_days == 29) return $first_day == 1? 5:4;
}
<?php
function weeks($month, $year){
$num_of_days = date("t", mktime(0,0,0,$month,1,$year));
$lastday = date("t", mktime(0, 0, 0, $month, 1, $year));
$no_of_weeks = 0;
$count_weeks = 0;
while($no_of_weeks < $lastday){
$no_of_weeks += 7;
$count_weeks++;
}
return $count_weeks;
}
echo weeks(2,2011)."<br/>";
echo weeks(9,2012)."<br/>";
?>
我想要no。例如,在这个日期的任何一个月的星期几 - 1月 - 2011年6周。任何想法? – Layric 2011-03-28 12:50:15
本周的第一天和最后一天是什么?您需要调整任何算法,以考虑周日开始的某些日历和周一开始的其他日历。 – oosterwal 2011-03-30 13:44:54