Ребетенок попросил научить Алису отвечать на вопрос: "Сколько осталось дней до Нового года".
Немного Гугла и получилось Это:
$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;
}
sg("ThisComputer.DayFromNY","$days");
sayReply('До Нового Года осталось:'.$days . ' дней, ' .$hours . ' часов, ' .$minutes . ' минут ',2);
Одно НО омрачает радость киндера - 52 ДНЕЙ звучит не айс.
Подскажите (или тыкните носом куда посмотреть), как научить Алису склонять дней/дня.
=======================================================================================================
Я у себя оставил такой вариант. Киндер в восторге! )) Кому не надо часы/минуты - закоментируют последние строки.
Всем спасибо за помощь )
Код: Выделить всё
$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;
}
sg("ThisComputer.DayFromNY","$days");
sayReply('До Нового Года осталось:'.$days.' '.getNumberWord($days,array('день','дня','дней')),2);
sayReply(''.$hours.' '.getNumberWord($hours,array('час','часа','часов')),2);
sayReply(''.$minutes.' '.getNumberWord($minutes,array('минута','минуты','минут')),2);