Sponsored Content
Full Discussion: Calc Time Difference in Perl
Top Forums Shell Programming and Scripting Calc Time Difference in Perl Post 302422253 by bataf on Tuesday 18th of May 2010 01:41:27 AM
Old 05-18-2010
Calc Time Difference in Perl

Hello,
I am having hard time calculating the time differnce in the below sequence. I tried nested for loops but I can't get to work.

Algorithm:
find time difference between the first AVAIL and the next event just before AVAIL.

0 05/17/2010 09:33 AVAIL <-- 1
1 05/17/2010 09:32 UM
2 05/17/2010 08:56 WE <-- 1
3 05/17/2010 03:46 AVAIL <-- 2
4 05/17/2010 03:31 STA <-- 2
5 05/15/2010 13:18 AVAIL <-- 3
6 05/15/2010 10:37 STA
7 05/15/2010 09:35 WP <-- 3
8 05/15/2010 08:49 AVAIL <--4
9 05/15/2010 07:27 STA
10 05/15/2010 07:26 STANDBY <--4

THanks,
Blow is my attempted code

Code:
if ($start_date){

                  if(m/(\d{2}\/\d{2}\/\d{4})\s+(\d{2}\:\d{2})\s+(\D+)\s+STAT/){
                          #print "found AVAIL\n";
                                if ( $3 ne "AVAIL"){
                                 $end_date = $1;
                          $end_time = $2;
                                  my ($smon,$sdate,$syear) = split("\/",$start_date);
                           my ($emon,$edate,$eyear) = split("\/",$end_date);
                           my ($shrs,$smin,$ssec) = split(":",$start_time);
                           my ($ehrs,$emin,$esec) = split(":",$end_time);
                                  @date1 = ($syear,$smon,$sdate,$shrs,$smin,$ssec);
          @date2 = ($eyear,$emon,$edate,$ehrs,$emin,$esec); # ==> less than 12 hours
                                  $d1 = Date_to_Time(@date1);
                           $d2 = Date_to_Time(@date2);
                                  $tt= ($d1-$d2)*.016666666667;
                                  print "\t $start_time $end_time  Both Avail $canontools[$d] $tt\n";

                                  $start_date = '';
                                  $avail_2="OFF";
                                  }
                                }

                              }
 
                   else  {
                 if(m/(\d{2}\/\d{2}\/\d{4})\s+(\d{2}\:\d{2})\s+AVAIL\s+STAT/){
                          $start_date = $1;
                          print "AVAIL\n";
                          $start_time = $2;
                          $avail_1="OFF"
                        }
                   }

 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

time difference

Hi, i have one hard coded time which will be 23:45 and one will be sysdate (same date) and time less than 23:45. i want to start my job at 23:45 and the input file will be arriving before that. so i want to make sure that the task starts only at 23:45 and from the input file time till 23:45... (3 Replies)
Discussion started by: decci_7
3 Replies

2. Shell Programming and Scripting

Time difference

Hi All, I know there has been a lot of things that have been written about date arithmetic, but perhaps I have missed something.. The following script takes the input from a file name fail.txt with the following format: CLASSDB 20060328122808 CPPARMS 20060814222056 Where $1 is a file name... (4 Replies)
Discussion started by: Segwar
4 Replies

3. Shell Programming and Scripting

Time Difference

Hi Experts... I want to calculate the time difference between two date-time values (using ksh). It can return the difference in hours (or whatever..) For eg: time_diff "09/12/2009 12:30" "09/10/2009 12:30" should return 1464 hours... $time_diff "09/12/2009 12:30:00" "09/10/2009... (5 Replies)
Discussion started by: PRKS
5 Replies

4. Shell Programming and Scripting

Perl Time Difference

I having probelm in time difference output using Delta_YMDHMS, using below start date and enddate I get -30days. Any idea how to fix this issue. output : 0,1,-30, 0,0,0 Thanks, Bataf use POSIX qw/strftime/; use Date::Calc qw(Delta_YMDHMS); use Time::Local; $start_date =... (1 Reply)
Discussion started by: bataf
1 Replies

5. Shell Programming and Scripting

Time difference

Hi, I have a tab delimited file with GMT time. How to convert the GMT to PST time and store the line only if date falls to 2 days ago date. Say today is 16, date should be of 14. or else remove the line abc - - efg - - hij - - kln - - ... (10 Replies)
Discussion started by: sandy1028
10 Replies

6. Shell Programming and Scripting

How to calculate time difference between start and end time of a process!

Hello All, I have a problem calculating the time difference between start and end timings...! the timings are given by 24hr format.. Start Date : 08/05/10 12:55 End Date : 08/09/10 06:50 above values are in mm/dd/yy hh:mm format. Now the thing is, 7th(08/07/10) and... (16 Replies)
Discussion started by: smarty86
16 Replies

7. SCO

Time difference

Need some help please. I am running SCO Openserver 5.07 on a Windows 2003 Server with VMware Server 1 If I run # ps -ef|grep /etc/cron the date that it shows the cron process started is older than the date I get from running the uptime command. In other words it looks like the date... (2 Replies)
Discussion started by: wjace
2 Replies

8. Shell Programming and Scripting

Time difference between two time stamps

Hi Friends, I have 2 varaibles which contain START=`date '+ %m/%d/%y %H:%M:%S'` END=`date '+ %m/%d/%y %H:%M:%S'` i want the time difference between the two variables in Seconds. Plz help. (2 Replies)
Discussion started by: i150371485
2 Replies

9. Shell Programming and Scripting

Calculate time difference between pst and pdt dates in perl

Hi, how to calculate the time difference between PST date and PDT date in perl scripting. date1: Mon Dec 31 16:00:01 PST 2015 date2: Tue Mar 19 06:09:30 PDT 2013 and also difference between PST-PST and PDT-PDT need difference in months or days (months prefereble). (3 Replies)
Discussion started by: praveen265
3 Replies

10. Shell Programming and Scripting

Get the time difference between two consecutive line in UNIX perl script

Hi All :o, I have some log files which contains these informations: 2013-04-24 09:11:34.018 INFO XXXXXXXXXXXX 2013-04-24 09:11:34.029 INFO YYYYYYYYYYYY 2013-04-24 09:11:34.039 INFO ZZZZZZZZZZZZZZZ 2013-04-24 09:12:21.295 INFO TTTTTTTTTTTTTTT 2013-04-24 09:12:21.489 INFO... (3 Replies)
Discussion started by: shariquehabib
3 Replies
FINDMNT(8)						       System Administration							FINDMNT(8)

NAME
findmnt - find a filesystem SYNOPSIS
findmnt [options] findmnt [options] device|mountpoint findmnt [options] [--source] device [--target|--mountpoint] mountpoint DESCRIPTION
findmnt will list all mounted filesystems or search for a filesystem. The findmnt command is able to search in /etc/fstab, /etc/mtab or /proc/self/mountinfo. If device or mountpoint is not given, all filesystems are shown. The device may be specified by device name, major:minor numbers, filesystem label or UUID, or partition label or UUID. Note that findmnt follows mount(8) behavior where a device name may be interpreted as a mountpoint (and vice versa) if the --target, --mountpoint or --source options are not specified. The command prints all mounted filesystems in the tree-like format by default. OPTIONS
-A, --all Disable all built-in filters and print all filesystems. -a, --ascii Use ascii characters for tree formatting. -b, --bytes Print the SIZE, USED and AVAIL columns in bytes rather than in a human-readable format. -C, --nocanonicalize Do not canonicalize paths at all. This option affects the comparing of paths and the evaluation of tags (LABEL, UUID, etc.). -c, --canonicalize Canonicalize all printed paths. -D, --df Imitate the output of df(1). This option is equivalent to -o SOURCE,FSTYPE,SIZE,USED,AVAIL,USE%,TARGET but excludes all pseudo filesystems. Use --all to print all filesystems. -d, --direction word The search direction, either forward or backward. -e, --evaluate Convert all tags (LABEL, UUID, PARTUUID or PARTLABEL) to the corresponding device names. -F, --tab-file path Search in an alternative file. If used with --fstab, --mtab or --kernel, then it overrides the default paths. If specified more than once, then tree-like output is disabled (see the --list option). -f, --first-only Print the first matching filesystem only. -h, --help Display help text and exit. -i, --invert Invert the sense of matching. -J, --json Use JSON output format. -k, --kernel Search in /proc/self/mountinfo. The output is in the tree-like format. This is the default. The output contains only mount options maintained by kernel (see also --mtab). -l, --list Use the list output format. This output format is automatically enabled if the output is restricted by the -t, -O, -S or -T option and the option --submounts is not used or if more that one source file (the option -F) is specified. -M, --mountpoint path Explicitly define the mountpoint file or directory. See also --target. -m, --mtab Search in /etc/mtab. The output is in the list format by default (see --tree). The output may include user space mount options. -N, --task tid Use alternative namespace /proc/<tid>/mountinfo rather than the default /proc/self/mountinfo. If the option is specified more than once, then tree-like output is disabled (see the --list option). See also the unshare(1) command. -n, --noheadings Do not print a header line. -O, --options list Limit the set of printed filesystems. More than one option may be specified in a comma-separated list. The -t and -O options are cumulative in effect. It is different from -t in that each option is matched exactly; a leading no at the beginning does not have global meaning. The "no" can used for individual items in the list. The "no" prefix interpretation can be disabled by "+" prefix. -o, --output list Define output columns. See the --help output to get a list of the currently supported columns. The TARGET column contains tree formatting if the --list or --raw options are not specified. The default list of columns may be extended if list is specified in the format +list (e.g. findmnt -o +PROPAGATION). -P, --pairs Use key="value" output format. All potentially unsafe characters are hex-escaped (x<code>). -p, --poll[=list] Monitor changes in the /proc/self/mountinfo file. Supported actions are: mount, umount, remount and move. More than one action may be specified in a comma-separated list. All actions are monitored by default. The time for which --poll will block can be restricted with the --timeout or --first-only options. The standard columns always use the new version of the information from the mountinfo file, except the umount action which is based on the original information cached by findmnt(8). The poll mode allows to use extra columns: ACTION mount, umount, move or remount action name; this column is enabled by default OLD-TARGET available for umount and move actions OLD-OPTIONS available for umount and remount actions -R, --submounts Print recursively all submounts for the selected filesystems. The restrictions defined by options -t, -O, -S, -T and --direction are not applied to submounts. All submounts are always printed in tree-like order. The option enables the tree-like output format by default. This option has no effect for --mtab or --fstab. -r, --raw Use raw output format. All potentially unsafe characters are hex-escaped (x<code>). -S, --source spec Explicitly define the mount source. Supported specifications are device, maj:min, LABEL=label, UUID=uuid, PARTLABEL=label and PAR- TUUID=uuid. -s, --fstab Search in /etc/fstab. The output is in the list format (see --list). -T, --target path Define the mount target. If path is not a mountpoint file or directory, then findmnt checks the path elements in reverse order to get the mountpoint (this feature is supported only when searching in kernel files and unsupported for --fstab). It's recommended to use the option --mountpoint when checks of path elements are unwanted and path is a strictly specified mountpoint. -t, --types list Limit the set of printed filesystems. More than one type may be specified in a comma-separated list. The list of filesystem types can be prefixed with no to specify the filesystem types on which no action should be taken. For more details see mount(8). --tree Enable tree-like output if possible. The options is silently ignored for tables where is missing child-parent relation (e.g. fstab). -U, --uniq Ignore filesystems with duplicate mount targets, thus effectively skipping over-mounted mount points. -u, --notruncate Do not truncate text in columns. The default is to not truncate the TARGET, SOURCE, UUID, LABEL, PARTUUID, PARTLABEL columns. This option disables text truncation also in all other columns. -v, --nofsroot Do not print a [/dir] in the SOURCE column for bind mounts or btrfs subvolumes. -w, --timeout milliseconds Specify an upper limit on the time for which --poll will block, in milliseconds. -x, --verify Check mount table content. The default is to verify /etc/fstab parsability and usability. It's possible to use this option also with --tab-file. It's possible to specify source (device) or target (mountpoint) to filter mount table. The option --verbose forces findmnt to print more details. --verbose Force findmnt to print more information (--verify only for now). EXAMPLES
findmnt --fstab -t nfs Prints all NFS filesystems defined in /etc/fstab. findmnt --fstab /mnt/foo Prints all /etc/fstab filesystems where the mountpoint directory is /mnt/foo. It also prints bind mounts where /mnt/foo is a source. findmnt --fstab --target /mnt/foo Prints all /etc/fstab filesystems where the mountpoint directory is /mnt/foo. findmnt --fstab --evaluate Prints all /etc/fstab filesystems and converts LABEL= and UUID= tags to the real device names. findmnt -n --raw --evaluate --output=target LABEL=/boot Prints only the mountpoint where the filesystem with label "/boot" is mounted. findmnt --poll --mountpoint /mnt/foo Monitors mount, unmount, remount and move on /mnt/foo. findmnt --poll=umount --first-only --mountpoint /mnt/foo Waits for /mnt/foo unmount. findmnt --poll=remount -t ext3 -O ro Monitors remounts to read-only mode on all ext3 filesystems. ENVIRONMENT
LIBMOUNT_FSTAB=<path> overrides the default location of the fstab file LIBMOUNT_MTAB=<path> overrides the default location of the mtab file LIBMOUNT_DEBUG=all enables libmount debug output LIBSMARTCOLS_DEBUG=all enables libsmartcols debug output LIBSMARTCOLS_DEBUG_PADDING=on use visible padding characters. Requires enabled LIBSMARTCOLS_DEBUG. AUTHORS
Karel Zak <kzak@redhat.com> SEE ALSO
fstab(5), mount(8) AVAILABILITY
The findmnt command is part of the util-linux package and is available from https://www.kernel.org/pub/linux/utils/util-linux/. util-linux June 2015 FINDMNT(8)
All times are GMT -4. The time now is 03:36 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy