|
|
|
|
|
для: Eugene77
(13.10.2008 в 18:09)
| | >>Когда год принимают равным ровнехонько 365 суткам, а время пытаются показать с точностью до секунд, это вызывает омерзение.
>
>Не совсем понимаю вас. А скольким же суткам должен быть равен год?!
Правило високосных лет вроде как в первом классе проходят... | |
|
|
|
|
|
|
|
для: Eugene77
(13.10.2008 в 18:09)
| | > Но функция вообще-то не для больших сроков: год в ней так - на всякий крайний случай. На год никто банить не будет.
Для Вас неприлично кидаться такими предположениями :( | |
|
|
|
|
|
|
|
для: Trianon
(12.10.2008 в 21:15)
| | >Когда год принимают равным ровнехонько 365 суткам, а время пытаются показать с точностью до секунд, это вызывает омерзение.
Не совсем понимаю вас. А скольким же суткам должен быть равен год?!
По идее в високосный год надо вносить поправку, но число суток должно оставаться целым...
Но функция вообще-то не для больших сроков: год в ней так - на всякий крайний случай. На год никто банить не будет.
[code]<?
function PluralForm($n, $form1, $form2, $form5)
{
$n = abs($n) % 100;
$n1 = $n % 10;
if($n > 10 && $n < 20) return $form5;
if($n1 > 1 && $n1 < 5) return $form2;
if($n1 == 1) return $form1;
return $form5;
} | |
|
|
|
|
|
|
|
для: Nemezis
(12.10.2008 в 21:06)
| | более точно
function pluralForm($n, $forms)
{
list($form0, $form1, $form2, $form5) = $forms;
//....
|
и далее по Вашему тексту.
Но дело даже не в этом.
Когда год принимают равным ровнехонько 365 суткам, а время пытаются показать с точностью до секунд, это вызывает омерзение. | |
|
|
|
|
|
|
|
для: Eugene77
(12.10.2008 в 20:05)
| | Мне кажется, что там маленького кусочка не хватает.
<?php
function pluralForm($n, $form1, $form2, $form5) {
$n = abs($n) % 100;
$n1 = $n % 10;
if ($n > 10 && $n < 20) return $form5;
if ($n1 > 1 && $n1 < 5) return $form2;
if ($n1 == 1) return $form1;
return $form5;
}
|
Чего-то в этом духе. | |
|
|
|
|
|
|
|
для: Eugene77
(12.10.2008 в 20:05)
| | >Вот для первого шага функция нашлась (не моя), но выглядит красиво
Работает? (осторожно интересуется) | |
|
|
|
|
|
|
|
для: sl1p
(11.10.2008 в 19:24)
| | Вот для первого шага функция нашлась (не моя), но выглядит красиво
<?
function CalcElapsedTime($time)
{
if(($time = (int) $time) === 0) return '0 cекунд';
$diff = $time;
$divs = array(60,60,24,365);
$ret = array();
$elements = array(
'years' => array(0,"год","года","лет"),
'days' => array(0,"день","дня","дней"),
'hrs' => array(0,"час","часа","часов"),
'mins' => array(0,"минута","минуты","минут"),
'secs' => array(0,"секунда","секунды","секунд"),
);
foreach($elements as $k => $v) {
$tmp = $diff;
foreach($divs as $div) $tmp /= $div;
if($elements[$k][0] = floor($tmp)) {
$ret[] = $elements[$k][0].' '.call_user_func_array('PluralForm',$elements[$k]);
$tmp = $elements[$k][0];
foreach($divs as $div) $tmp *= $div;
$diff -= $tmp;
}
$divs = array_slice($divs,0,-1);
}
return join(" ",$ret);
}
|
| |
|
|
|
|
|
|
|
для: Eugene77
(11.10.2008 в 19:19)
| | Написал же что не помню.Я же не думал что пригодится)
зы.Мне то не трудно ковыряться, но я даже не знаю с чего подойти, вдруг начну велосипед делать) | |
|
|
|
|
|
|
|
для: sl1p
(11.10.2008 в 19:10)
| | Если где-то видели, то хотя бы яву хорошо было бы здесь опубликовать. К ней уже проще дописать PHP. А так получается слишком объёмная задачка. Ну, если у кого-то время найдётся, то сделает. Я лично с таким объёмом кода проковыряюсь некий отрезок времени. Его у меня сейчас нет. Если бы вы сами часть уже написали, которую можете, то тогда проще было бы помочь доделать. | |
|
|
|
|
|
|
|
для: Eugene77
(11.10.2008 в 17:55)
| | Ну я ведь попросил помочь реализовать, а не говорить о том как это сложно.
Такое часто где-то видел(уже не помню где), значит возможно как-то:) | |
|
|
|
|