X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXUtil.pm;h=73f36d17b6e0cbb2bb0a1dbf91f74cc1cc7fbacf;hb=557d4f48a1d7c30a162967ed23edd674f14504f2;hp=9c44fa057528e1ce0b57bc5e92670fb947b286a3;hpb=cb8e8a033f5960ca5854e89c68be461dd70cbd47;p=spider.git diff --git a/perl/DXUtil.pm b/perl/DXUtil.pm index 9c44fa05..73f36d17 100644 --- a/perl/DXUtil.pm +++ b/perl/DXUtil.pm @@ -27,7 +27,7 @@ require Exporter; print_all_fields cltounix unpad is_callsign is_latlong is_qra is_freq is_digits is_pctext is_pcflag insertitem deleteitem is_prefix dd is_ipaddr $pi $d2r $r2d localdata localdata_mv - diffms _diffms difft parraydifft + diffms _diffms difft parraydifft is_ztime ); @@ -445,6 +445,12 @@ sub is_ipaddr return $_[0] =~ /^\d+\.\d+\.\d+\.\d+$/ || $_[0] =~ /^[0-9a-f:,]+$/; } +# is it a zulu time hhmmZ +sub is_ztime +{ + return $_[0] =~ /^(?:(?:2[0-3])|(?:[01][0-9]))[0-5][0-9]Z$/; +} + # insert an item into a list if it isn't already there returns 1 if there 0 if not sub insertitem { @@ -511,6 +517,7 @@ sub _diffms sub diffms { + my $pkg = shift; my $call = shift; my $line = shift; my $ta = shift; @@ -519,7 +526,7 @@ sub diffms my $msecs = _diffms($ta, $tb); $line =~ s|\s+$||; - my $s = "subprocess stats cmd: '$line' $call ${msecs}mS"; + my $s = "$pkg subprocess stats cmd: '$line' $call ${msecs}mS"; $s .= " $no lines" if $no; DXDebug::dbg($s); } @@ -528,25 +535,36 @@ sub diffms sub difft { my $b = shift; + my $adds = shift; + my $t; if (ref $b eq 'ARRAY') { $t = $b->[1] - $b->[0]; } else { - $t = shift() - $b; + if ($adds >= $b) { + $t = $adds - $b; + $adds = shift; + } else { + $t = $main::systime - $b; + } } return '-(ve)' if $t < 0; my ($d,$h,$m,$s); my $out = ''; $d = int $t / 86400; - $out .= "${d}d" if $d; + $out .= sprintf ("%s${d}d", $adds?' ':'') if $d; $t -= $d * 86400; $h = int $t / 3600; - $out .= "${h}h" if $h || $d; + $out .= sprintf ("%s${h}h", $adds?' ':'') if $h; +# $out .= "${h}h" if $h || $d; $t -= $h * 3600; $m = int $t / 60; - $out .= "${m}m" if $m || $h || $d; + $out .= sprintf ("%s${m}m", $adds?' ':'') if $m; +# $out .= "${m}m" if $m || $h || $d; $s = int $t % 60; - $out .= "${s}s"; + $out .= sprintf ("%s${s}s", $adds?' ':'') if $s; + # $out .= "${s}s"; + $out ||= sprintf ("%s0s", $adds?' ':''); return $out; }