Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: определение (лет,года) :)
 
 автор: unnamed   (18.01.2007 в 13:14)   письмо автору
 
 

Здраствуйте.
Есть вывод возраста человека, допустим "20 лет", а вот если человеку 23, то надо вывести "23 года" как это определяется? какая система? спасибо.

   
 
 автор: cheops   (18.01.2007 в 13:18)   письмо автору
 
   для: unnamed   (18.01.2007 в 13:14)
 

Возможно вас заинтересует тема по ссылке http://www.softtime.ru/forum/read.php?id_forum=1&id_theme=4540.

   
 
 автор: Sergey89   (18.01.2007 в 13:19)   письмо автору
 
   для: unnamed   (18.01.2007 в 13:14)
 

По последней цифре вроде как. 0 - лет, 1 - год, 2-4 - года 5-9 - лет. Ео есть исключения типа 11, 12, 13 и ещё какие-то вроде.

   
 
 автор: ULIS   (18.01.2007 в 13:24)   письмо автору
 
   для: unnamed   (18.01.2007 в 13:14)
 

$age = array();

$age[20] = "лет";
$age[21] = "год";
$age[22] = "года";

$currAge = 22;

print($currAge." ".$age[$currAge]);

   
 
 автор: unnamed   (18.01.2007 в 15:17)   письмо автору
 
   для: ULIS   (18.01.2007 в 13:24)
 

Вот что вышло:

<?
$day
="кол-во лет";
$last_digit $day[(strlen($day) - 1)];
$pred_last_digit $day[(strlen($day) - 2)];
if((
$last_digit == || $last_digit == 1|| $last_digit == || $last_digit == || $last_digit == 4|| $last_digit == 5|| $last_digit == 6|| $last_digit == 7|| $last_digit == 8|| $last_digit == 9) && ($pred_last_digit == || $pred_last_digit == || $pred_last_digit == 3  || $pred_last_digit == || $pred_last_digit == 5|| $pred_last_digit == || $pred_last_digit == || $pred_last_digit == 8)) 
{
$word="лет";}

if(
$last_digit == && $pred_last_digit != 1) {$word="год";}

if((
$last_digit == || $last_digit == || $last_digit == 4) && $pred_last_digit != 1) {$word="года";}

echo 
$day.$word;
?>

Можно укоротить? :) Или и так сойдет. сделал все что смог
Спасибо всем и спасибо cheops'у за ссылочку именно по тому примеру делал.

   
 
 автор: Саня   (18.01.2007 в 17:04)   письмо автору
 
   для: unnamed   (18.01.2007 в 15:17)
 

Для себя я уже давно написал такую функцию:
<?php
function textnum $form1$form2$form3$num ) {
  if ( !
is_numeric($num) ) return $form1;
  if ( 
$num $num = -$num;
  
$num = (string)$num;
  
$len strlen($num);
  
$last_num = (integer)($len == $num $num[$len 1]);
  if ( 
$len >= ) {
    if ( 
$num[$len-2] == "1" ) return $form3;
  }
  if ( 
$last_num == ) {
    return 
$form1;
  } elseif ( 
$last_num >=&& $last_num ) {
    return 
$form2;
  } else {
    return 
$form3;
  }
}
$number rand(010000);
print 
"На сайте находятся ".$number." ".
      
textnum("пользователь""пользователя""пользователей"$number).".<br/>";

$number rand(0100);
print 
"Вам ".$number." ".textnum("год""года""лет"$number).".<br/>";

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования