The ksh does not have date arithmetic, but you can decompose the lines, fields to the integers and write some calendar subroutines to do the subtraction. I would use sed to turn the various numbers into variable settings:
If you are inclined to reduce them to something like integer UNIX Zulu time, I have found it best to shift the epoch slightly (March 1, 1968) so the first days, month days for March through January, February is whatever is left over. The new epoch has 365x4+1 day quad-years from 3/1/1900 to 2/28/2100 as 2000 was a leap year century.
I'm writting a script to find the difference between two timestamp. One field i get on delivery time of the file like 07:17 AM and other is my SLA time 06:30 AM
I need to find the difference between these two time (time exceeded to meet SLA). Need some suggestions. (8 Replies)
There was this thread earlier with the same name and the solution provided was excellent. Here is the solution to find diffrenc between two timestamp
$ cat timestamp
#! /usr/bin/ksh
echo enter first time stamp
read TIME1
echo enter second time stamp
read TIME2
H1=${TIME1%:+()}... (3 Replies)
Hi,
I have a file with one column data (sample below) and I am trying to write a shell script to calculate the difference between consecutive data valuse i.e
Var = Ni -N(i-1)
0.3141
-3.6595
0.9171
5.2001
3.5331
3.7022
-6.1087
-5.1039
-9.8144
1.6516
-2.725
3.982
7.769
8.88 (5 Replies)
Hello,
I'm trying to create a shell script (#!/bin/sh) which should tell me the age of a file in minutes...
I have a process, which delivers me all 15 minutes a new file and I want to have a monitoring script, which sends me an email, if the present file is older than 20 minutes.
To do... (10 Replies)
Hello Expert,
I need to transpose Date-Timestamp based on same column values and calculate time difference. The input file would be as below and required output is mentioned in the bottom
INPUT File
========
08/23/2012 12:36:09 JOB_5340
08/23/2012 12:36:14 JOB_5340
08/23/2012... (2 Replies)
Hi,
I would like to calculate the average of column 'y' based on the value of column 'pos'.
For example, here is file1
id pos y c
11 1 220 aa
11 4333 207 f
11 5333 112 ee
11 11116 305 e
11 11117 310 r
11 22228 781 gg
11 ... (2 Replies)
Legends,
I have a requirement to run the script exactly after one hour of completion of dependent script.
Eg: Script B should run after one hour on the completion of Script A.
I got the time stamps using following variables. these scripts runs in autosys
> DATE=`date +%H:%M`
>... (4 Replies)
cat sample.csv
ID,Name,no
1,AAA,1
2,BBB,1
3,AAA,1
4,BBB,1
cut -d',' -f2 sample.csv | sort | uniq
this gives only the 2nd column values
Name
AAA
BBB
How to I get all the columns of CSV along with this? (1 Reply)
I would like to have some help in calculating 5th percentile value of column 2 for each site, the input is like below:site val1 val2
002 10 25.3
002 20 25.3
002 30 25.3
002 40 20
002 50 20
002 60 20
002 70 20
002 80 30
002 90 30
002 100 30
002 120 30
003 20 30.3
003 20 30.3
003 30 20... (2 Replies)
Discussion started by: wuhuai
2 Replies
LEARN ABOUT FREEBSD
easterg
CALENDAR(3) BSD Library Functions Manual CALENDAR(3)NAME
easterg, easterog, easteroj, gdate, jdate, ndaysg, ndaysj, week, weekday -- Calendar arithmetic for the Christian era
LIBRARY
Calendar Arithmetic Library (libcalendar, -lcalendar)
SYNOPSIS
#include <calendar.h>
struct date *
easterg(int year, struct date *dt);
struct date *
easterog(int year, struct date *dt);
struct date *
easteroj(int year, struct date *dt);
struct date *
gdate(int nd, struct date *dt);
struct date *
jdate(int nd, struct date *dt);
int
ndaysg(struct date *dt);
int
ndaysj(struct date *dt);
int
week(int nd, int *year);
int
weekday(int nd);
DESCRIPTION
These functions provide calendar arithmetic for a large range of years, starting at March 1st, year zero (i.e., 1 B.C.) and ending way beyond
year 100000.
Programs should be linked with -lcalendar.
The functions easterg(), easterog() and easteroj() store the date of Easter Sunday into the structure pointed at by dt and return a pointer
to this structure. The function easterg() assumes Gregorian Calendar (adopted by most western churches after 1582) and the functions
easterog() and easteroj() compute the date of Easter Sunday according to the orthodox rules (Western churches before 1582, Greek and Russian
Orthodox Church until today). The result returned by easterog() is the date in Gregorian Calendar, whereas easteroj() returns the date in
Julian Calendar.
The functions gdate(), jdate(), ndaysg() and ndaysj() provide conversions between the common "year, month, day" notation of a date and the
"number of days" representation, which is better suited for calculations. The days are numbered from March 1st year 1 B.C., starting with
zero, so the number of a day gives the number of days since March 1st, year 1 B.C. The conversions work for nonnegative day numbers only.
The gdate() and jdate() functions store the date corresponding to the day number nd into the structure pointed at by dt and return a pointer
to this structure.
The ndaysg() and ndaysj() functions return the day number of the date pointed at by dt.
The gdate() and ndaysg() functions assume Gregorian Calendar after October 4, 1582 and Julian Calendar before, whereas jdate() and ndaysj()
assume Julian Calendar throughout.
The two calendars differ by the definition of the leap year. The Julian Calendar says every year that is a multiple of four is a leap year.
The Gregorian Calendar excludes years that are multiples of 100 and not multiples of 400. This means the years 1700, 1800, 1900, 2100 are
not leap years and the year 2000 is a leap year. The new rules were inaugurated on October 4, 1582 by deleting ten days following this date.
Most catholic countries adopted the new calendar by the end of the 16th century, whereas others stayed with the Julian Calendar until the
20th century. The United Kingdom and their colonies switched on September 2, 1752. They already had to delete 11 days.
The function week() returns the number of the week which contains the day numbered nd. The argument *year is set with the year that contains
(the greater part of) the week. The weeks are numbered per year starting with week 1, which is the first week in a year that includes more
than three days of the year. Weeks start on Monday. This function is defined for Gregorian Calendar only.
The function weekday() returns the weekday (Mo = 0 .. Su = 6) of the day numbered nd.
The structure date is defined in <calendar.h>. It contains these fields:
int y; /* year (0000 - ????) */
int m; /* month (1 - 12) */
int d; /* day of month (1 - 31) */
The year zero is written as "1 B.C." by historians and "0" by astronomers and in this library.
SEE ALSO ncal(1), strftime(3)STANDARDS
The week number conforms to ISO 8601: 1988.
HISTORY
The calendar library first appeared in FreeBSD 3.0.
AUTHORS
This manual page and the library was written by Wolfgang Helbig <helbig@FreeBSD.org>.
BUGS
The library was coded with great care so there are no bugs left.
BSD November 29, 1997 BSD