uerter
Гыхм... А чего тут определять? Пусть $month - номер месяца от 1 до 12, и есть массив соответствия номера месяца и количества дней в нем - $month_days; пусть $day_of_week - номер дня недели для первого числа этого месяца от 0 до 6; тогда
PHP код:
$cur_days = $month_days[$month] + $day_of_week - 7;
$weeks = (($cur_days % 7) == 0)?$cur_days / 7:floor ($cur_days / 7) + 1;
$weeks++;
и в переменной $weeks теперь хранится количество недель в месяце - в том числе и неполных.
Номера же недель по порядку от начала года можно определить аналогично, обработав сумму количества дней предыдущих месяцев, т.о. получим номер первой недели в нужном месяце.