Усовершенствование календаря

steelhomework

Новичок
Усовершенствование календаря

Доброго времени суток друзья!

У меня есть календарь и мне его нужно слегка усовершенствовать. Но я не сильно силён в программирование.
И вот запутался в некоторых местах. Календарь напоминает iPhone Calendar. Я сделал что бы показывались дни в начале недели предыдущего месяца. Но никак не могу сделать дни в конце недели следующего месяца.

PHP:
/* draws a calendar */
function draw_calendar ($month, $year) {
	/* draw table */
	$calendar = "<table cellspacing='0'>\n\n";

	/* table headings */
	$headings = array ('Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun');
	$calendar .= "<thead>\n";
	$calendar .= "<tr>\n";
	$calendar .= "<th>";
	$calendar .= "".implode ("</th>\n<th>", $headings)."";
	$calendar .= "</th>\n";
	$calendar .= "</tr>\n";
	$calendar .= "</thead>\n\n";

	/* days and weeks vars now ... */
	$running_day = date ('w', mktime (0, 0, 0, $month, 1, $year)) - 1;
	$days_in_month = date ('t', mktime (0, 0, 0, $month, 1, $year));
	$days_in_prev_month = date ('t', mktime (0, 0, 0, $month - 1, 1, $year));
	$days_in_next_month = date ('t', mktime (0, 0, 0, $month + 1, 1, $year));
	$days_in_this_week = 1;
	$day_counter = 0;
	$dates_array = array ();

	/* row for week one */
	$calendar .= "<tbody>\n";
	$calendar .= "<tr>\n";

	/* print 'blank' days until the first of the current week */
	for ($x = 0; $x < $running_day; $x++) :
		//$calendar .= "<td class='padding'>&nbsp;</td>\n";
		$calendar .= "<td class='padding'>".(($days_in_prev_month - ($running_day - 1)) + $x)."</td>\n";
		$days_in_this_week++;
	endfor;

	$birthdays_file = "dat/birthdays.dat";
	$reading = file ($birthdays_file);
	$counting = count ($reading);
	$i = 0;

	do {
		$events[] = explode ("|", $reading[$i]);
		$i++;
	} while ($i < $counting);

	/* keep going with days.... */
	for ($list_day = 1; $list_day <= $days_in_month; $list_day++) :

		/* add in the day number */
		if ($list_day == date('j')) :
			if ($events) :
				$calendar .= "<td class='date_has_event'>$list_day\n";
				$calendar .= "<div class='events'>\n";
				$calendar .= "<ul>\n";
				$calendar .= "<li>\n";
				$calendar .= "<span class='title'>".$events[0][0] . "." . $events[0][1] . "." . $events[0][2]."</span>\n";
				$calendar .= "<span class='desc'>".$events[0][3]."</span>\n";
				$calendar .= "</li>\n";
				$calendar .= "</ul>\n";
				$calendar .= "</div>\n";
				$calendar .= "</td>\n";
			else :
				$calendar .= "<td class='today'>$list_day</td>\n";
			endif;
		else :
			if ($events == 100) :
				$calendar .= "<td class='date_has_event'>$list_day\n";
				$calendar .= "<div class='events'>\n";
				$calendar .= "<ul>\n";
				$calendar .= "<li>\n";
				$calendar .= "<span class='title'>".$events[0][2]."</span>\n";
				$calendar .= "<span class='desc'>".$events[0][3]."</span>\n";
				$calendar .= "</li>\n";
				$calendar .= "</ul>\n";
				$calendar .= "</div>\n";
				$calendar .= "</td>\n";
			else :
				$calendar .= "<td>$list_day</td>\n";
			endif;
		endif;

		if ($running_day == 6) :
			$calendar .= "</tr>\n";
			if (($day_counter+1) != $days_in_month):
				$calendar .= "<tr>\n";
			endif;
			$running_day = -1;
			$days_in_this_week = 0;
		endif;
		$days_in_this_week++; $running_day++; $day_counter++;
	endfor;

	/* finish the rest of the days in the week */
	if ($days_in_this_week < 8 && $days_in_this_week != 1):
		for ($x = 1; $x <= (8 - $days_in_this_week); $x++):
			//$calendar .= "<td class='padding'>&nbsp;</td>\n";
			$calendar .= "<td class='padding'>".(($days_in_next_month - $days_in_this_week) + $x)."</td>\n"; // Вот никак не могу справиться в этом месте. Не знаю с какого конца подойти...
		endfor;
	endif;

	/* final row */
	$calendar .= "</tr>\n";
	$calendar .= "</tbody>\n\n";

	/* table footings */
	$calendar .= "<tfoot>\n";
	$calendar .= "<tr>\n";
	$calendar .= "<th>";
	$calendar .= "".implode ("</th>\n<th>", $headings)."";
	$calendar .= "</th>\n";
	$calendar .= "</tr>\n";
	$calendar .= "</tfoot>\n";

	/* end the table */
	$calendar .= "\n</table>\n";
	
	/* all done, return result */
	return $calendar;
}
 

craz

Нестандартное звание
У меня есть календарь и мне его нужно слегка усовершенствовать. Но я не сильно силён в программирование.
Ты противоречишь себе, поэтому вывод у тебя нет календаря, календарь есть у кого то другого, а тебе его надо усовершенствовать, соответственно напиши сам такой же календарь и тогда он будет у тебя.

Вот тогда я думаю тут многие тебе помогут с ответом, а сейчас уже можешь ждать ответов по типу сколько даш за работу.
 

Mr_Max

Первый класс. Зимние каникулы ^_^
Команда форума
Скока $
?
:DDDD

-~{}~ 06.11.10 09:32:

Едем в пока в офтоп
 
Сверху