[PERL] сколько прошло секунд от начала суток

И всё прочее, что касается HTML
Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

[PERL] сколько прошло секунд от начала суток

Непрочитанное сообщение Alex Keda » 2011-05-07 22:10:31

как сабж посчитать?

задача простая, мне надо на момент запуска скрипта знать сколько прошло секунд от начала суток, по времени сервера где этот скрипт и работает
===
с какого конца подступиться не знаю - лезут в голову извращённые методы с запросом в базу - на SQL такие задачки на раз решаются...
но не хочется. т.к. базы нет.
Убей их всех! Бог потом рассортирует...

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
vadim64
майор
Сообщения: 2101
Зарегистрирован: 2009-09-17 15:15:26
Откуда: Засратовец

Re: [PERL] сколько прошло секунд от начала суток

Непрочитанное сообщение vadim64 » 2011-05-07 22:40:52

Люди не делятся на национальности, партии, фракции и религии. Люди делятся на умных и дураков, а вот дураки делятся на национальности, партии, фракции и религии.

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: [PERL] сколько прошло секунд от начала суток

Непрочитанное сообщение ProFTP » 2011-05-08 0:14:10

Код: Выделить всё

# perl -MPOSIX -e 'print mktime((0)x3, sub { $_[3],$_[4]+1,$_[5] }->(localtime))'
1307484000
выведит время в unixtime за текущий день за 0-0-0 часов...
(может быть есть неточность, надо смотреть)
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

FiL
ст. лейтенант
Сообщения: 1375
Зарегистрирован: 2010-02-05 0:21:40

Re: [PERL] сколько прошло секунд от начала суток

Непрочитанное сообщение FiL » 2011-05-08 8:00:37

ProFTP писал(а):

Код: Выделить всё

# perl -MPOSIX -e 'print mktime((0)x3, sub { $_[3],$_[4]+1,$_[5] }->(localtime))'
1307484000
выведит время в unixtime за текущий день за 0-0-0 часов...
(может быть есть неточность, надо смотреть)
a зачем +1?
Как раз его не надо вроде.

Ну и полностью ответ на поставленную задачу тогда -

Код: Выделить всё

 perl -MPOSIX -e 'print time-mktime((0)x3, sub { $_[3],$_[4],$_[5] }->(localtime))'

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: [PERL] сколько прошло секунд от начала суток

Непрочитанное сообщение Alex Keda » 2011-05-08 13:52:06

ненавижу этот язык...
а можно, для дебилов, однострочное представление разложить на десяток строк с использованием промежуточных переменных, чтобы понятно было что присходит?
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: [PERL] сколько прошло секунд от начала суток

Непрочитанное сообщение Alex Keda » 2011-05-08 14:00:24

Код: Выделить всё

serv3# /root/scripts/stat/get.resource.usage.pl
Undefined subroutine &main::mktime called at /root/scripts/stat/get.resource.usage.pl line 25, <MYTMP> line 4276.
serv3# 

Код: Выделить всё

serv3# grep mktime /root/scripts/stat/get.resource.usage.pl
        $num_seconds = (time-mktime((0)x3, sub { $_[3],$_[4],$_[5] }->(localtime)));
serv3# 
не фурычит
Убей их всех! Бог потом рассортирует...

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: [PERL] сколько прошло секунд от начала суток

Непрочитанное сообщение Alex Keda » 2011-05-08 14:07:49

Код: Выделить всё

use POSIX;
помогло...

первый вопрос отсатёся открытым - я не понимаю как это работает =(
Убей их всех! Бог потом рассортирует...

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: [PERL] сколько прошло секунд от начала суток

Непрочитанное сообщение FreeBSP » 2011-05-08 14:31:21

как я понял, идея такая
1) получаем timestamp для 0:00:00 текущего дня
2) получаем текущий timestamp.
3) вычитанием первого из второго получаем искомое число секунд

Код: Выделить всё

$num_seconds = (
          time -                                              # из теккущего timestamp вычитаем 
          mktime(                                             # другой timestampб вероятно на начало текущих суток
                 (0)x3,                                       # особоая, чорная перловая магия
                 sub { $_[3], $_[4], $_[5] }->(localtime)     # тут вероятно идет извлечение из полученой даты вида Yr Mo Dy Hr Mn Sc последних трех составляющих - текуих часов, мин и секунд. скорее всего задается прям сразу процедура-обработчик для возвращаемого значения. возвращается массив, на обработчик он поступает как $_, и из него последние три элемента выкорчовываем
          ) # mktime
);
P.S.
Alex Keda писал(а):ненавижу этот язык...
+1 =)
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: [PERL] сколько прошло секунд от начала суток

Непрочитанное сообщение Alex Keda » 2011-05-08 15:28:03

time - это что? если функция то почему не записана как time() ?

как можно вообще на таком языке писать. код должен сам себя документировать, а тут одна строка и надо поллитра, каждому, чтобы разобраться.
--
всё равно не понимаю.
Убей их всех! Бог потом рассортирует...

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: [PERL] сколько прошло секунд от начала суток

Непрочитанное сообщение ProFTP » 2011-05-08 15:35:44

Код: Выделить всё

sub { $_[3], $_[4], $_[5] }->(localtime)
это можно написать так:

Код: Выделить всё

use POSIX qw(strftime);
strftime("%Y-%m-%d", localtime)
только потом c текущего года надо было отнять 1900

ЗЫ: пишите так как вам удобно :)
FiL писал(а): a зачем +1?
Как раз его не надо вроде.
точно, не заметил
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: [PERL] сколько прошло секунд от начала суток

Непрочитанное сообщение FreeBSP » 2011-05-08 17:12:31

Alex Keda писал(а):time - это что? если функция то почему не записана как time() ?
как можно вообще на таком языке писать. код должен сам себя документировать, а тут одна строка и надо поллитра, каждому, чтобы разобраться.
черная перловая магия =)
наверное "если перед именем нет явного обозначения, что это переменная, и нет такой константы, то это функция" или что то типа того
я сам тут больше на очучения ориентируюсь, а на не понимание =)
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

rmn
старшина
Сообщения: 427
Зарегистрирован: 2008-10-03 18:52:02

Re: [PERL] сколько прошло секунд от начала суток

Непрочитанное сообщение rmn » 2011-05-08 17:27:43

что-то вы тут лишнего понаписали. какие-то годы, таймстампы...
число секунд от начала суток равно:

Код: Выделить всё

h*3600 + m*60 + s
где:
h - текущий час
m - текущая минута
s - текущая секунда

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: [PERL] сколько прошло секунд от начала суток

Непрочитанное сообщение FreeBSP » 2011-05-08 17:38:32

:good: :drinks:
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: [PERL] сколько прошло секунд от начала суток

Непрочитанное сообщение Alex Keda » 2011-05-08 18:12:09

rmn писал(а):что-то вы тут лишнего понаписали. какие-то годы, таймстампы...
число секунд от начала суток равно:

Код: Выделить всё

h*3600 + m*60 + s
где:
h - текущий час
m - текущая минута
s - текущая секунда
это как, в коде?
Убей их всех! Бог потом рассортирует...

rmn
старшина
Сообщения: 427
Зарегистрирован: 2008-10-03 18:52:02

Re: [PERL] сколько прошло секунд от начала суток

Непрочитанное сообщение rmn » 2011-05-08 18:28:07

Alex Keda писал(а): это как, в коде?
на php так:

Код: Выделить всё

$date = explode(":", date("h:i:s"));
$seconds = $date[0] * 3600 + $date[1] * 60 + $date[2];
perl не хочу знать :)

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35462
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: [PERL] сколько прошло секунд от начала суток

Непрочитанное сообщение Alex Keda » 2011-05-08 19:38:34

с пыхом и сам разобрался бы =)
там всё прозрачней
Убей их всех! Бог потом рассортирует...

Аватара пользователя
FreeBSP
майор
Сообщения: 2020
Зарегистрирован: 2009-05-24 20:20:19
Откуда: Москва

Re: [PERL] сколько прошло секунд от начала суток

Непрочитанное сообщение FreeBSP » 2011-05-08 19:56:37

seconds.php

Код: Выделить всё

#! /usr/local/...../php-cgi
<?php
list($h, $i, $s) = explode(":", date("h:i:s"));
echo $h * 3600 + $i * 60 + $s
?>

Код: Выделить всё

#!/usr/bin/perl
...
$secs=`seconds.php`
...
ы?

или

Код: Выделить всё

#!/usr/bin/perl
...
$secs=`/bin/date ...`
...
Человек начинает получать первые наслаждения от знакомства с unix системами. Ему нужно помочь - дальше он сможет получать наслаждение самостоятельно ©
Ламер — не желающий самостоятельно разбираться. Не путать с новичком: ламер опасен и знает это!

rmn
старшина
Сообщения: 427
Зарегистрирован: 2008-10-03 18:52:02

Re: [PERL] сколько прошло секунд от начала суток

Непрочитанное сообщение rmn » 2011-05-08 20:37:16

FreeBSP писал(а): или

Код: Выделить всё

#!/usr/bin/perl
...
$secs=`/bin/date ...`
...
в перле нет встроенной функции, чтобы узнать текущее время?

---

как-то так:

Код: Выделить всё

my ($sec,$min,$hour,$mday,$mon,$year, $wday,$yday,$isdst) = localtime time;
my $seconds = $hour*3600 + $min*60 + $sec;

Аватара пользователя
thefree
лейтенант
Сообщения: 980
Зарегистрирован: 2008-12-29 9:23:19
Откуда: Весёлая Страна

Re: [PERL] сколько прошло секунд от начала суток

Непрочитанное сообщение thefree » 2011-05-08 22:07:25

Код: Выделить всё

perl -e 'print sub { $_[0]+$_[1]*60+$_[2]*3600 }->(localtime);'
Не судите меня строго, Я не волшебник, а только учусь!
http://planetbsd.ru - RSS-агрегатор *BSD по Рунету

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: [PERL] сколько прошло секунд от начала суток

Непрочитанное сообщение ProFTP » 2011-05-09 0:21:22

FiL писал(а): Ну и полностью ответ на поставленную задачу тогда -
у тебя там там нету знакомых перл программистов?
ты там не знакомишься нигде в Маями? :)

давай сделаем компанию Filin America online corp Inc :-D
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

FiL
ст. лейтенант
Сообщения: 1375
Зарегистрирован: 2010-02-05 0:21:40

Re: [PERL] сколько прошло секунд от начала суток

Непрочитанное сообщение FiL » 2011-05-09 3:58:11

Перловые программисты знакомые есть. Не в Маями, правда.
Но я к ним не отношусь. Я перл также ненавижу, как и большинство в этом топике :)

FiL
ст. лейтенант
Сообщения: 1375
Зарегистрирован: 2010-02-05 0:21:40

Re: [PERL] сколько прошло секунд от начала суток

Непрочитанное сообщение FiL » 2011-05-09 4:00:27

rmn писал(а): как-то так:

Код: Выделить всё

my ($sec,$min,$hour,$mday,$mon,$year, $wday,$yday,$isdst) = localtime time;
my $seconds = $hour*3600 + $min*60 + $sec;
Для нормальных людей лучше не "localtime time", а "localtime (time)" или просто "localtime()". Оно в таком виде понятнее :)

Аватара пользователя
ProFTP
подполковник
Сообщения: 3388
Зарегистрирован: 2008-04-13 1:50:04
Откуда: %&й
Контактная информация:

Re: [PERL] сколько прошло секунд от начала суток

Непрочитанное сообщение ProFTP » 2011-05-10 12:28:47

FiL писал(а):Перловые программисты знакомые есть. Не в Маями, правда.
Но я к ним не отношусь. Я перл также ненавижу, как и большинство в этом топике :)
но там же платят $900 в день!
Senior Perl Developer @ Global Investment Bank - Jersey City, NJ
для обычного программиста 600$ в день

ЗЫ: ваш проект гавно - но мы же вам платим © :-D
Pеrl FAQ
perl -e 'print join"",map $$_[rand@$_],([0..9,'a'..'z','A'..'Z'])x30'
ИзображениеИзображение

FiL
ст. лейтенант
Сообщения: 1375
Зарегистрирован: 2010-02-05 0:21:40

Re: [PERL] сколько прошло секунд от начала суток

Непрочитанное сообщение FiL » 2011-05-10 22:07:18

ProFTP писал(а): но там же платят $900 в день!
Senior Perl Developer @ Global Investment Bank - Jersey City, NJ
для обычного программиста 600$ в день
900 - это corp-to-corp. Реально человеку дай Б-г половину получить в руки. Даже если 500 баксов в день, то это 60 баксов в час (причем плата "в день" меня несколько смущает. окажется, что надо работать по 12 часов в день без доплаты). 60 в час, минус все налоги, минус всякие там расходы на страховку и прочие радости, которые положены белым людям на постоянной работе (в отличии от контракта) и получается, что весьма так себе зарплатка. Побольше моей процентов на 30-40, но и гемора побольше на порядок.

P.S. И все равно я не перл-программист. :)