Программа которая считает дни до нового года

Хелоу! Мне хотелось сделать на php скрипт, который будет считать сколько осталось до Нового Года (в днях, часах, минутах и секундах). Буду признателен если подкинете код.

Ответы (5 шт):

$realtime = mktime(0, 0, 0, 01, 01, 2012); $futuretime = $realtime — time(); echo date(«До нового года: j дней h часов i минут s секунд», $futuretime);

Запостю тоже, так как когда начал писать — ответов не было. не пропадать же труду 🙂

$currentYear = date(‘Y’); // получаем текущий год $newYear = mktime(0, 0, 0, 1, 1, $currentYear + 1); // высчитываем дату Нового Года $seconds = $newYear — time(); $days = 0; $hours = 0; $minutes = 0; $oneMinute = 60; $oneHour = 60 * $oneMinute; $oneDay = $oneHour * 24; if ($seconds / $oneDay > 0) < $days = (int)($seconds / $oneDay); $seconds -= $days * $oneDay; >if ($seconds / $oneHour > 0) < $hours = (int)($seconds / $oneHour); $seconds -= $hours * $oneHour; >if ($seconds / $oneMinute > 0) < $minutes = (int)($seconds / $oneMinute); $seconds -= $minutes * $oneMinute; >printf(‘К Новому Году осталось: %02d дней %02d часов %02d минут и %02d секунд’, $days, $hours, $minutes, $seconds);
$date = date_create(); //текущая дата $datka = date_format($date, ‘d.n.Y’); $newYear = 12; //последний месяц года $arr = explode(‘.’, $datka); $month = []; //здесь будет количество дней, в каждом месяце текущего года for($i = 1; $i echo »; print_r($month); echo »; $ostatok = 0; for($j = $arr[1]; $j echo ‘Количество дней до Нового года: ‘ . ($ostatok — $arr[0]);
$date = date(‘L’); if($date == 1)< $endYear = 366-date(‘z’); echo ‘До конца года осталось ‘.$endYear.’ дней.’; >else

Источник: husl.ru

сколько дней осталось до нового года?

Программа которая считает дни до нового года

Напишите программу, которая получает день и номер месяца, а выводит количество дней, оставшихся до нового года. Считайте, что год невисокосный (365 дней). Учтите что слова «дней» может иметь также формы «день» и » дня «

Читайте также:
Программы для диагностики итальянских авто

Регистрация: 03.01.2014
Сообщений: 2,870

Напишите программу,

А, сами не пробовали?
Регистрация: 04.03.2014
Сообщений: 2
пробуя вот, но ничего не выходит(не могу сообразить с чего начать
Регистрация: 03.01.2014
Сообщений: 2,870
пробуя вот, но ничего не выходит(не могу сообразить с чего начать

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

Регистрация: 11.10.2011
Сообщений: 3,882

Есть много путей решения.. предложу такой..
Читаем d, m. Описываем процедуру NextDay, которая меняет d, m. (а т.к. год невисокосный, то она будет простая).. и крутим её, увеличивая счетчик, пока d <> 1 и m <> 1.. всё.. (ну пожалуй можно еще учесть случай, когда d и m уже 1 1.. можно на if’ить.. а можно крутить repeat..

За 30 Минут до Нового Года — Уральские Пельмени | ЭКСКЛЮЗИВ

Источник: www.programmersforum.ru

Вычисляем дни до Нового Года

Здравствуйте, многим известно, что до Нового Года осталось считанные дни, так вот к чему данная статья. Данная статья пока что еще не будет итогом работы моего блога в течении этого года и не будет нести поздравительный, пока еще что характер. А статья моя о том, которая поможет программно вычислить сколько до Нового Года осталось времени. Вычислять оно будет не сколько дней, а вот в таком формате:

До Нового Года осталось 0 месяцев 20 дней 3 часа 25 минут 43 секунды и каждую секунду естественно будет происходить обновление. Такое конечно можно сделать с любым праздником, с любой датой, которая только Вам понравится.

Вы возможно часто замечали на сайтах есть уже давно такие скрипты, на том же сайте Delphi в Internet также есть подобный счетчик, который показывает сколько осталось до окончания конкурса, который организовал данный сайт. Вот эта программка и предназначалась для того конкурса, не вся конечно, то есть это была бы не программка, а я хотел сделать скринсейвер, который закончен только на половину и эта надпись до Нового Года осталось столько-то, присутствует в моем скринсейвере, но учеба на водительское удостоверение, подготовка к сессии не дало мне до конца довести проект.

Читайте также:
Запуск программы невозможен так как отсутствует api ms win core synch

Но зато теперь я с водительским удостоверением. Конечно очень хотел поучаствовать в конкурсе, но не судьба, ничего как-нибудь переживем, думаю еще не мало будет подобных конкурсов. Ну так вот вернемся к нашей программке. Что нам для реализации данной программы понадобиться — это только TTimer. Таймер нам необходим для того, чтобы каждую секунду обновлять.

Конечно тут немного я неправильно сделал, проблема у меня возникла в том, что необходимо было определять сколько дней в текущем месяце, чтобы подсчитать сколько дней осталось до Нового Года и тут у меня возникла проблема с високосным годом, но эту проблему я решил с помощью функции IsLeapYear, после этого я просто делал проверку на то, какой сейчас месяц и в переменной хранил количество дней в месяце, в других месяцах может быть только 30 или 31 день. Только после этого как я все уже подготовил, я понял, что я очень глупо поступил. Ведь в Delphi есть замечательная функция, которая возвращает количество дней в указанном году и месяце. Но ничего я уже не стал делать второй вариант с данной функцией, так что обойдемся без нее.

Но про данную функцию скажу — DaysInAMonth, у данной функции два параметра типа Word. Первый — год и второй параметр — месяц, для которого вычислять количество дней. Все просто как видите, применение следующее

procedure TForm1.FormCreate(Sender: TObject); begin caption:=Inttostr(DaysInAMonth(2010,12)); end;

В результате вернется результат — 31. И действительно ведь в декабре 2010 года 31 день =).

Ну что теперь вернемся к нашей программе. После того как мы определили сколько дней в месяце, то мы спокойно мы просто вычисляем результат. А вычисляется он просто, от 12 отнимаем номер текущего месяца, от текущего количества дней в месяце отнимаем текущее число, от 24 отнимаем количество часов текущее и тоже самое делаем с минутами и секундами. Все просто, может я как-то немного ошибся в расчетах, так что не судите строго. Вот я написал какую функцию

Читайте также:
Как пользоваться программой voice meter

function TForm1.GetDaysToNewYear(Dates,Times: String): String; var d,m,y,h,s,minut:String; daym,hous,minutes,second:Integer; begin d:=Copy(Dates,1,pos(‘.’,Dates)-1); Delete(Dates,1,pos(‘.’,Dates)); m:=Copy(Dates,1,pos(‘.’,Dates)-1); Delete(Dates,1,pos(‘.’,Dates)); y:=Dates; h:=Copy(Times,1,pos(‘:’,Times)-1); Delete(Times,1,pos(‘:’,Times)); minut:=Copy(Times,1,pos(‘:’,Times)-1); Delete(Times,1,pos(‘:’,Times)); s:=Times; if h=’0′ then hous:=24 else hous:=StrToInt(h); if minut=’0′ then minutes:=1 else minutes:=StrToInt(minut); second:=StrToInt(s); if m=’2′ then begin daym:=28; if IsLeapYear(StrToInt(y)) then daym:=29; end; if (((StrToInt(m) mod 2)<>0) and (StrToInt(m))) or (m=’8′) or (m=’12’) or (m=’10’) then daym:=31; if (((StrToInt(m) mod 2)=0) and (StrToInt(m))) or (m=’9′) or (m=’11’) then daym:=30; result:=’До Нового Года осталось ‘+IntToStr(12-StrToInt(m))+ ‘ месяцев’+IntToStr(daym-StrToInt(d))+’ дней’+IntToStr(24-hous)+ ‘ часов’+IntToStr(60-minutes)+’ минут’+IntToStr(60-second)+’ секунд’; end;

Применять данную функцию стоит в следующем формате

procedure TForm1.Timer1Timer(Sender: TObject); begin Caption:=GetDaysToNewYear(FormatDateTime(‘dd.m.yyyy’,Date),FormatDateTime(‘h:m:s’,Time)); end;

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

Кстати, на ОС linux ubuntu также можно сделать такой счетчик дней до праздника. Но тут нужна среда разработки, например Lazarus

Исходники можно скачать тут

Автор статьи — Andrey53

Источник: zaokomtek.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru