litta, ну как мне удобнее было
а вот это уже сложновато для новичков, любимая Альком плюрализация
6. Напишите функцию, которая вычисляет текущее время и возвращает его в формате
с правильными склонениями, например:
22 часа 15 минут
21 час 43 минуты
я даже локалку запустил что бы проверить результат) не был уверен что не затупил ни где
function over_time()
{
$hours = date('H');
$minutes = date('m');
$result = $hours;
if ($hours>19) { $hours = $hours%10; }
switch ($hours) {
case 1: { $result.= ' час, '.$minutes.' '; break;}
case 2:
case 3:
case 4: { $result.= ' часа, '.$minutes.' '; break;}
default: { $result.= ' часов, '.$minutes.' '; break;}
}
if ($minutes>19) { $minutes = $minutes%10; }
switch ((int)$minutes) {
case 1: { $result.= 'минута'; break;}
case 2:
case 3:
case 4: { $result.= 'минуты'; break; }
default: {$result.= 'минут'; break;}
}
return $result;
}
echo over_time(); // 0 часов, 24 минуты
на коленке пилил когда то
http://annimon.com/code/?act=v ... =1586
я помню как писал этот код на работе с телефона se t700 и тестил на хомяке
5.
function power($num, $pow){
if($pow < 1)
return 1;
return $num * power($num, $pow-1);
}
echo power(2, 10); // 1024
6.
<?php
function rightEnding($n, $m) {
$n100 = $n % 100; // остаток от деления на 100
if( $n100 > 0 && $n100 < 5 || $n100 > 20 ) {
if($n100 % 10 == 1) {
return $m[0];
}else if($n100 % 10 >1 && $n100 % 10 < 5){
return $m[1];
}else {
return $m[2];
}
}else {
return $m[2];
}
}
function formatCurrentDate(){
return '' . date('G') . rightEnding(date('H'), array('час', 'часа','часов')) .
' ' . date('m') . rightEnding(date('m'), array('минута','минуты','минут'));
}
echo formatCurrentDate(); // 1час 36минут
Для решения 6 задания больше подойдет такая функция:
function morfform($value, $morfforms){
$mod = $value % 100;
return $morfforms[($mod > 7 && $mod < 20) ? 2 : [2, 0, 1, 1, 1, 2][min($mod % 10, 5)]];
}
echo morfform(5, ['день', 'дня', 'дней']); // 5 дней
Урок по ООП и MVC сегодня в 17-00 по Киеву. (18-00 по Москве)
# Delphinum (03.11.2016 / 10:33)
Для решения 6 задания больше подойдет такая функция:
function morfform($value, $morfforms){
$mod = $value % 100;
задания явно по switch
имейте совесть, решайте в рамках темы
ramzes, не вижу в задании упоминания switch. Меня не было на уроке, мож упустил.
Delphinum, не разобрался еще со switch
Delphinum, ой ну видно же по общему списку заданий)
в данном случае не оговорено конкретно к этому заданию, но понятно же на что направлен урок)
ну не суть, это я так, типа шучу