URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 4468
[ Назад ]

Исходное сообщение
"perl + snmp + timeticks = как  подсчитать общее кол-во минут"

Отправлено slog11 , 11-Июл-05 12:59 
Здравствуйте.

По SNMP запросу (get_request) получаем счетчик работы интерфейса типа timeticks. Если потом вывести через print, то получаем в формате "2 days, 10 hours, 12 minutes, 00.00".

Подскажите, пожалуйста, как преобразовать вывод в общее количество минут и вывести как целое.

Спасибо.


Содержание

Сообщения в этом обсуждении
"perl + snmp + timeticks = как  подсчитать общее кол-во минут"
Отправлено rWizard , 11-Июл-05 14:00 
если не вдумываться, то -

my $request = "2 days, 10 hours, 12 minutes, 00.00";
$request =~ m/(\d+?) days, (\d+?) hours, (\d+?) munutes/i;
my $minutes = $1*1440 + $2*60 + $3;


"perl + snmp + timeticks = как  подсчитать общее кол-во минут"
Отправлено den68 , 22-Фев-08 01:52 
>если не вдумываться, то -
>
>my $request = "2 days, 10 hours, 12 minutes, 00.00";
>$request =~ m/(\d+?) days, (\d+?) hours, (\d+?) munutes/i;
>my $minutes = $1*1440 + $2*60 + $3;

а наобарот, из Timeticks в читаемое выражение ?



"perl + snmp + timeticks = как  подсчитать общее кол-во минут"
Отправлено dgyn , 14-Окт-10 14:17 
если мы говорим о perl, то в шапке скрипта можно написать

use Net::SNMP qw(ticks_to_time);

а в коде писать:

$data = ticks_to_time($data);

before: 178759254
after: 20 days, 16:33:12.54

если чисто из спортивного интереса то можно так:
my $hrs  = int($data / (60 * 60 * 100)); # Data is hundredths of a second
my $mins = int($data / (60 * 100)) % 60;
my $secs = ($data % 100) / 100;
printf "%d:d:.2f | ", $hrs, $mins, $secs;