No changes
This commit is contained in:
parent
8680a02b13
commit
b6b398f5bf
17374 changed files with 2475441 additions and 0 deletions
205
ControlPanel/_agent-linux/Time/CTime.pm
Normal file
205
ControlPanel/_agent-linux/Time/CTime.pm
Normal file
|
|
@ -0,0 +1,205 @@
|
|||
package Time::CTime;
|
||||
|
||||
|
||||
require 5.000;
|
||||
|
||||
use Time::Timezone;
|
||||
use Time::CTime;
|
||||
require Exporter;
|
||||
@ISA = qw(Exporter);
|
||||
@EXPORT = qw(ctime asctime strftime);
|
||||
@EXPORT_OK = qw(asctime_n ctime_n @DoW @MoY @DayOfWeek @MonthOfYear);
|
||||
|
||||
use strict;
|
||||
|
||||
# constants
|
||||
use vars qw(@DoW @DayOfWeek @MoY @MonthOfYear %strftime_conversion $VERSION);
|
||||
use vars qw($template $sec $min $hour $mday $mon $year $wday $yday $isdst);
|
||||
|
||||
$VERSION = 2011.0505;
|
||||
|
||||
CONFIG: {
|
||||
@DoW = qw(Sun Mon Tue Wed Thu Fri Sat);
|
||||
@DayOfWeek = qw(Sunday Monday Tuesday Wednesday Thursday Friday Saturday);
|
||||
@MoY = qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec);
|
||||
@MonthOfYear = qw(January February March April May June
|
||||
July August September October November December);
|
||||
|
||||
%strftime_conversion = (
|
||||
'%', sub { '%' },
|
||||
'a', sub { $DoW[$wday] },
|
||||
'A', sub { $DayOfWeek[$wday] },
|
||||
'b', sub { $MoY[$mon] },
|
||||
'B', sub { $MonthOfYear[$mon] },
|
||||
'c', sub { asctime_n($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst, "") },
|
||||
'd', sub { sprintf("%02d", $mday); },
|
||||
'D', sub { sprintf("%02d/%02d/%02d", $mon+1, $mday, $year%100) },
|
||||
'e', sub { sprintf("%2d", $mday); },
|
||||
'f', sub { fracprintf ("%3.3f", $sec); },
|
||||
'F', sub { fracprintf ("%6.6f", $sec); },
|
||||
'h', sub { $MoY[$mon] },
|
||||
'H', sub { sprintf("%02d", $hour) },
|
||||
'I', sub { sprintf("%02d", $hour % 12 || 12) },
|
||||
'j', sub { sprintf("%03d", $yday + 1) },
|
||||
'k', sub { sprintf("%2d", $hour); },
|
||||
'l', sub { sprintf("%2d", $hour % 12 || 12) },
|
||||
'm', sub { sprintf("%02d", $mon+1); },
|
||||
'M', sub { sprintf("%02d", $min) },
|
||||
'n', sub { "\n" },
|
||||
'o', sub { sprintf("%d%s", $mday, (($mday < 20 && $mday > 3) ? 'th' : ($mday%10 == 1 ? "st" : ($mday%10 == 2 ? "nd" : ($mday%10 == 3 ? "rd" : "th"))))) },
|
||||
'p', sub { $hour > 11 ? "PM" : "AM" },
|
||||
'r', sub { sprintf("%02d:%02d:%02d %s", $hour % 12 || 12, $min, $sec, $hour > 11 ? 'PM' : 'AM') },
|
||||
'R', sub { sprintf("%02d:%02d", $hour, $min) },
|
||||
'S', sub { sprintf("%02d", $sec) },
|
||||
't', sub { "\t" },
|
||||
'T', sub { sprintf("%02d:%02d:%02d", $hour, $min, $sec) },
|
||||
'U', sub { wkyr(0, $wday, $yday) },
|
||||
'v', sub { sprintf("%2d-%s-%4d", $mday, $MoY[$mon], $year+1900) },
|
||||
'w', sub { $wday },
|
||||
'W', sub { wkyr(1, $wday, $yday) },
|
||||
'y', sub { sprintf("%02d",$year%100) },
|
||||
'Y', sub { $year + 1900 },
|
||||
'x', sub { sprintf("%02d/%02d/%02d", $mon + 1, $mday, $year%100) },
|
||||
'X', sub { sprintf("%02d:%02d:%02d", $hour, $min, $sec) },
|
||||
'Z', sub { &tz2zone(undef,undef,$isdst) }
|
||||
# z sprintf("%+03d%02d", $offset / 3600, ($offset % 3600)/60);
|
||||
);
|
||||
|
||||
|
||||
}
|
||||
|
||||
sub fracprintf {
|
||||
my($t,$s) = @_;
|
||||
my($p) = sprintf($t, $s-int($s));
|
||||
$p=~s/^0+//;
|
||||
$p;
|
||||
}
|
||||
|
||||
sub asctime_n {
|
||||
my($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst, $TZname) = @_;
|
||||
($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst, $TZname) = localtime($sec) unless defined $min;
|
||||
$year += 1900;
|
||||
$TZname .= ' '
|
||||
if $TZname;
|
||||
sprintf("%s %s %2d %2d:%02d:%02d %s%4d",
|
||||
$DoW[$wday], $MoY[$mon], $mday, $hour, $min, $sec, $TZname, $year);
|
||||
}
|
||||
|
||||
sub asctime
|
||||
{
|
||||
return asctime_n(@_)."\n";
|
||||
}
|
||||
|
||||
# is this formula right?
|
||||
sub wkyr {
|
||||
my($wstart, $wday, $yday) = @_;
|
||||
$wday = ($wday + 7 - $wstart) % 7;
|
||||
return int(($yday - $wday + 13) / 7 - 1);
|
||||
}
|
||||
|
||||
# ctime($time)
|
||||
|
||||
sub ctime {
|
||||
my($time) = @_;
|
||||
asctime(localtime($time), &tz2zone(undef,$time));
|
||||
}
|
||||
|
||||
sub ctime_n {
|
||||
my($time) = @_;
|
||||
asctime_n(localtime($time), &tz2zone(undef,$time));
|
||||
}
|
||||
|
||||
# strftime($template, @time_struct)
|
||||
#
|
||||
# Does not support locales
|
||||
|
||||
sub strftime {
|
||||
local ($template, $sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst) = @_;
|
||||
|
||||
undef $@;
|
||||
$template =~ s/%([%aAbBcdDefFhHIjklmMnopQrRStTUvwWxXyYZ])/&{$Time::CTime::strftime_conversion{$1}}()/egs;
|
||||
die $@ if $@;
|
||||
return $template;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
__END__
|
||||
|
||||
=head1 NAME
|
||||
|
||||
Time::CTime -- format times ala POSIX asctime
|
||||
|
||||
=head1 SYNOPSIS
|
||||
|
||||
use Time::CTime
|
||||
print ctime(time);
|
||||
print asctime(localtime(time));
|
||||
print strftime(template, localtime(time));
|
||||
|
||||
=head2 strftime conversions
|
||||
|
||||
%% PERCENT
|
||||
%a day of the week abbr
|
||||
%A day of the week
|
||||
%b month abbr
|
||||
%B month
|
||||
%c ctime format: Sat Nov 19 21:05:57 1994
|
||||
%d DD
|
||||
%D MM/DD/YY
|
||||
%e numeric day of the month
|
||||
%f floating point seconds (milliseconds): .314
|
||||
%F floating point seconds (microseconds): .314159
|
||||
%h month abbr
|
||||
%H hour, 24 hour clock, leading 0's)
|
||||
%I hour, 12 hour clock, leading 0's)
|
||||
%j day of the year
|
||||
%k hour
|
||||
%l hour, 12 hour clock
|
||||
%m month number, starting with 1, leading 0's
|
||||
%M minute, leading 0's
|
||||
%n NEWLINE
|
||||
%o ornate day of month -- "1st", "2nd", "25th", etc.
|
||||
%p AM or PM
|
||||
%r time format: 09:05:57 PM
|
||||
%R time format: 21:05
|
||||
%S seconds, leading 0's
|
||||
%t TAB
|
||||
%T time format: 21:05:57
|
||||
%U week number, Sunday as first day of week
|
||||
%v DD-Mon-Year
|
||||
%w day of the week, numerically, Sunday == 0
|
||||
%W week number, Monday as first day of week
|
||||
%x date format: 11/19/94
|
||||
%X time format: 21:05:57
|
||||
%y year (2 digits)
|
||||
%Y year (4 digits)
|
||||
%Z timezone in ascii. eg: PST
|
||||
|
||||
=head1 DESCRIPTION
|
||||
|
||||
This module provides routines to format dates. They correspond
|
||||
to the libc routines. &strftime() supports a pretty good set of
|
||||
conversions -- more than most C libraries.
|
||||
|
||||
strftime supports a pretty good set of conversions.
|
||||
|
||||
The POSIX module has very similar functionality. You should consider
|
||||
using it instead if you do not have allergic reactions to system
|
||||
libraries.
|
||||
|
||||
=head1 GENESIS
|
||||
|
||||
Written by David Muir Sharnoff <muir@idiom.org>.
|
||||
|
||||
The starting point for this package was a posting by
|
||||
Paul Foley <paul@ascent.com>
|
||||
|
||||
=head1 LICENSE
|
||||
|
||||
Copyright (C) 1996-2010 David Muir Sharnoff.
|
||||
Copyright (C) 2011 Google, Inc.
|
||||
License hereby
|
||||
granted for anyone to use, modify or redistribute this module at
|
||||
their own risk. Please feed useful changes back to cpan@dave.sharnoff.org.
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue