Прогрес бар

Статус
В этой теме нельзя размещать новые ответы.

Linker

Guest
Мда, Georgy всё сделал с размахом :)

А у меня так получилось:


<?
$start = 12; // любое число первого месяца
$stop = 23; // любое число второго месяца

$start_month = 3; // первый месяц
$stop_month = 4; // второй месяц

$start_day = date("z", mktime(0, 0, 0, $start_month, $start, 2003));
$stop_day = date("z", mktime(0, 0, 0, $stop_month, $stop, 2003));

$cur_day = date("z"); // сегодня

for ($i=$start_day; $i<=$stop_day; $i++)
{
if ($i>$cur_day) {echo '<img src="img/cubew.gif">'; }
else { echo '<img src="img/cubew.gif">'; }
}

?>
 

Georgy

Guest
2 Linker:

oi:) спасиба -- все намного проще - молодца
 

NeoLynx

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

Linker респект.
 

RomikChef

Guest
линкер, а если первый месяц - декабрь, а второй - январь?
чем твое решение принципиально отличается от "текущего месяца"? Да ничем.
такое же копание в песочнице и неумение составить простейший алгоритм.
Хотя вам всем давали правильный путь решения.

я бы написал правильное решение, но до сих пор не понимаю задачи. по какому принципу формируется сам период.
пока все формулировки на уровне
- какой у вас телефон?
- беленький, с кнопочками
 

NeoLynx

Новичок
период любой, ты его сам задаешь.
просто до текущей даты одним цветом, после другим.
для примера можешь взять период отсюда
http://blackbird.tagtech.ru/date.php

самое интересное сделать код как можно более аккуратным и компактным.

Очень хотелось бы увидеть решение от гуру (TeaM PHPClub)
 

RomikChef

Guest
если я сам буду задавать период, то я буду задавать его без перекрытия.
чтобы программа могла сама определить, в какой части периода она находится.
а от тебя вразумительных объяснений, каким образом вычисляется, что 12 число -то не начало цикла, а середина.
а то, что вы здесь понаписали, это не программа, а полуавтомат, которому надо постоянно задавать нужные параметры вручную.

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

Linker

Guest
RomikChef:

Nobody is perfect, I'm nobody :)

NeoLynx:

т.е. нужно каждый раз брать шкалу в 40 дней и вести этот "прогресс бар", а по окончании - заново следующие 40 дней ?
 

RomikChef

Guest
пока же твои призывы к написанию кода аналогичны фразе из другого анекдота -
"чего думать - прыгать надо!"
 

NeoLynx

Новичок
2 RomikChef, задача которая стояла передо мной я решил, пусть немного и схитрив. Показал что и как. И так оставлю. Мне интересно, в качестве повышения квалификации, можно ли это реализовать без хитрости не городя огород с массивами, привязками к месяцу и т.д

Linker сказал можно и решил ее более интересным и честным способом.

От тебя (ничего, что я на "ты"?) поступила интересная идея, в ней есть смысл, но я не понимаю как ее можно применить.
В начале треда, задача поставленна конкретней некуда, в ней задан конкретный период, который при необходимости может быть изменен на другой руками. Я даже пример выложил. Что тут может быть непонятно?

Тут не надо Программ, достаточно и полуавтоматов, такова задача. Мой мудрый любитель автоматов.
И призывов никаких нет, все давно поняли и "прыгнули".
Ответ за гуру..., покажи что можно проще и качественней решить задачу.
 

RomikChef

Guest
ну-ну.
хамишь ты мне зря.
потому, что не с твоими способностями соображать стоит тут выпендриваться.
задачка-то, ради которой ты собрался заводить новый форум, и так пафосно рассуждаешь об алгоритмах, на самом деле не стоит ни того ни другого.
Это рутина, банальность.
а проблему она составила длятебя и для твоих доброхотов только потому, что ты не дал себе труда подумать над ней. СФОРМУЛИРОВАТЬ прежде, чем решать.
И на все мои попытки указать тебе на это, ты лишь неуклюже хамишь и подначиваешь.
PHP:
$start = "12.03.03";
$end = "24.04.03";

list($d,$m,$y)=explode(".",$end);
$end=mktime(0,0,0,$m,$d++,$y);
list($d,$m,$y)=explode(".",$start);
$today=mktime(0,0,0);
while (($stamp=mktime(0,0,0,$m,$d++,$y))<>$end) {
  echo date("d.m.Y",$stamp);
  if ($stamp <= $today) echo " красный квадратик"; else echo " белый квадратик";
  echo "<br>";
}
 

RomikChef

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

Georgy

Guest
ариант георгия не рассматривал, поскольку не воспринимаю большие куски кода.

почему куски кода -- этов едь рабочая фукнция!
 

Larson

Новичок
> этов едь рабочая фукнция!
Какая она рабочая? Посмотри на раскраску кода ;)
 

RomikChef

Guest
функция состоит из количества кода, слишком большого для моего восприятия.
 

Georgy

Guest
2 RomikChef:

ну да... может, но я просто и не старался опимизировать.
 

RomikChef

Guest
а я к тебеникаких претензий и не предъявляю.
 

RomikChef

Guest
вообще-то, при беглом взгляде на функцию, закрадываются сомнения в ее способности решить поставленную задачу.
 

NeoLynx

Новичок
RomikChef, все, без вопросов, папа.

И хамил не зря, не стоит предвзято относиться к людям и хамить, если ты не понял задачи.
Решение действительно хорошее, респект.

интересно кто-нибудь сможет переплюнуть?

Поповоду форума алгоритмов, я говорил не о себе, а в целом и об алгоритмах никаких рассуждений не вел.
Наверняка есть задачи и посложнее, на подумать.
 

RomikChef

Guest
решение не хорошее, а, как я вижу - единственное :)
остальное - не подходит под определение решения.
заплатки
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху