У меня сейчас есть эта проблема: учитывая месяц и год, мне нужно знать, сколько у него дней недели (то есть, количество дней, исключая субботу и воскресенье).
Это кажется таким простым, и все же я сбит с толку.Конечно, я мог бы решить это с помощью цикла for
и проверить, является ли день субботой или воскресным, и если нет, увеличить счетчик, но это просто глупо (и линейно), учитывая, что я почти уверен, что смогу получитьпокончим с парой делений или по модулю.
Есть идеи алгоритма?В вашем распоряжении все возможности PHP 4.4.1.
EDIT Вот рабочая реализация цикла for
:
function weekdays_in_month($month, $year)
{
$days_in_month = days_in_month($month); // days_in_month defined somewhere
$first_day = date('w', mktime(0,0,0, $month, 1, $year));
$counter = 0;
for ($i = 0; $i < $days_in_month; $i++)
{
if (($first_day + $i + 1) % 7 >= 2)
$counter++;
}
return $counter;
}