Forum Webscript.Ru

Программирование => Perl => Тема начата: Dart Sidius от 01 Апреля 2003, 16:30:03

Название: Вопрос со временем
Отправлено: Dart Sidius от 01 Апреля 2003, 16:30:03
Возник такой вопрос...например есть какое-то кол-во секунд....например 5420.....как можно изъять сколько это времени в часам, минутах, секундах...и т.п. Я имею в виду есть ли какой модуль в перле?
Название: Вопрос со временем
Отправлено: NeoNox от 01 Апреля 2003, 17:04:07
Ты бы вместо многоточий более конкретно задачу поставил.
Пока я не понимаю при чем тут модуль.
Название: Вопрос со временем
Отправлено: NCRangeR от 01 Апреля 2003, 23:52:33
Dart Sidius
можно количество секунд, прошедших с 1970 года преобразовать в символы (год-месяц-число-час-минута-секунда).
функция называется localtime.

А почему нельзя просто "руками" поделить? ;)
вроде того:
$sec = time % 60; и т.д.?
Название: Вопрос со временем
Отправлено: Dart Sidius от 02 Апреля 2003, 10:45:43
Можно но у меня всё время какая-то лажа получается....не точно...
Название: Вопрос со временем
Отправлено: Dart Sidius от 02 Апреля 2003, 10:47:24
Цитировать
NeoNox:
Ты бы вместо многоточий более конкретно задачу поставил.
Пока я не понимаю при чем тут модуль.

Ладно изъясняю подробней. Есть какое-то кол-во секунд...например: 40323...как мне преобразовать данные секунды в формат кол-во лет:месяцев:дней:часов:минут:секунд ....тоесть это как статистика...юзер провёл на сайте столько-то...
Название: Вопрос со временем
Отправлено: NeoNox от 02 Апреля 2003, 12:42:12
Dart Sidius
Спасибо за изяснение.
Можно написать и компактнее, но смысл будет понятен из такого куска.

deltatime("40323");

sub deltatime{

   my $time = shift;
   print $time;
   my $htime = $time/(60*60);
   $htime =~ /(.*?)\\.(.*)/;
   my $hours = $1;
   my $mtime = ($time - $hours*(60*60))/60;
   $mtime =~ /(.*?)\\.(.*)/;
   my $minutes = $1;
   my $sec = (".$2"*60);
   print "Hours - $hours Minutes - $minutes Seconds - $sec\\n";
}
Никаких модулей - только немного подумать
Название: Вопрос со временем
Отправлено: Wyclef от 02 Апреля 2003, 13:38:26
Perl Cookbook

print delta_time(40323);

sub delta_time {
   my $difference = shift;
   my ($hours, $minutes, $seconds);
   
   $seconds = $difference % 60;
   $difference = ($difference - $seconds) / 60;
   $minutes = $difference % 60;
   $difference = ($difference - $minutes) / 60;
   $hours = $difference % (24*60);
       
   return "$hours hours, $minutes munutes, $seconds seconds";
}
Название: Вопрос со временем
Отправлено: КшЫуфксрук от 02 Апреля 2003, 17:41:37
> как мне преобразовать данные секунды в формат кол-во лет:месяцев:дней:часов:минут:секунд

С днями, часами, минутами и секундами понятно. А вот "месяц" - это что за зверь? Они ведь бывают от 28 дней до 31 дня, а еще лунные, астрономические и возможно еще какие-нибудь.
Название: Вопрос со временем
Отправлено: Dema от 02 Апреля 2003, 18:45:49
месяц возьми среднее число 30 дней, если тебе действительно надо посчитать сколько времени был юзер.
Название: Вопрос со временем
Отправлено: Wyclef от 03 Апреля 2003, 10:45:07
Цитировать
...юзер провёл на сайте столько-то... лет:месяцев:...


гыы :)

perldoc Date::Calc