protected function getWeekInMonth($date, $pattern = 'W')
{
if ($pattern != 'W') {
throw new Exception('The pattern for week in month is "W".');
}
return @date('W', @mktime(0, 0, 0, $date['mon'], $date['mday'], $date['year'])) - date('W', mktime(0, 0, 0, $date['mon'], 1, $date['year']));
}