Assuming you have a version of date that supports +%s and -d (GNU date seems to do this), then this should work in either kshell or bash:
Code:
# returns success if date passed in is more than three months in the past
# assumes the date is in the form yyyy-mm-dd mm and dd can be single digits.
function is_old
{
if [[ -z $_now ]] # "static" values set on first call
then
_dim=( 31 30 31 31 28 31 30 31 30 31 31 30 31 30 31 ) # days in months; yes -- 15 months!!
_now=$(date +%s )
_m=$(date +%Y%m ) # current month
_y=${_m:0:4}
if (( _y % 4 == 0 )) # works until 2100, so keep it simple
then
_dim[4]=29 # leap year this year
fi
(( _m = ${_m:4:2} + 2 )) # proper index into dim
fi
typeset tdate=$(date -d $1 +%s ) # convert date to check into seconds past epoch
typeset cutoff=$(( _now - (86400 * ( (_dim[_m-1] + _dim[_m-2] + _dim[_m-3]))) ))
return $(( tdate > cutoff ))
}
# simple loop to read date from stdin
while read d
do
if is_old $d
then
echo "old: $d"
else
echo "not: $d"
fi
done
If you are not as particular about what "three months" means, and could accept calling something old if it is simply more than 90 days old, then you could use the function below --
I have a file with some date columns in MM/DD/YYYY format:
SMPBR|DUP-DO NOT USE|NEW YORK||16105|BA5270715|6/6/2007 |MWERNER|109||||JOHN||SMITH|MD|72211118||||||74559|21 WILMINGTON RD||D|11/6/2003|SL# MD CONTACT-LIZ RICHARDS|||0|Y|N||1411458|
And I want to convert the date format to:
... (5 Replies)
Frens,
I have a logfile which has got manier things in it and somewer in that file i have a date in mm/dd/yyyy hh:mm format....
I just need to get the date and time nothing else....
i have searched in this forum for it but got only date in mm-dd-yyyy format..
but i need to search for... (10 Replies)
(Attention: Green PHP newbie !)
I have an online inquiry form, delivering a date in the form yyyy/mm/dd to my feedback form. If the content passes several checks, the form sends an e-mail to me. All works fine. I just would like to receive the date in the form dd/mm/yyyy. I tried with some code,... (6 Replies)
could you please help be on the below code ..
Requirement is when i pass the parameter(for below 2) i should get current time -2 hours in the format :wall:..
cur_dt=`$ICEBIN/sqsh -S$DSQUERY -U $BATCHID -P $PASSWD -h -C"select getdate()" | sed '2d'`
pr_dt="`$ICEBIN/sqsh -S$DSQUERY -U $BATCHID... (2 Replies)
Hi,
I am having one log files. contains som data according to date. And it is going to append .Eg:abc.log contains below data
2011-10-19 abjhgj
2011-10-19 gjhgjgj
2011-10-20 hhhjh
2011-10-20 hhhhjj
2011-10-21 gg
.
.
.
2011-11-24 yyy
from log files i want catch only... (2 Replies)
Hi,
How can I convert day of year value in format(yy,doy) to normal formatted (dd.mm.yyyy) string also all of them with awk or awk system function?
in_file.txt
---------
12,043
12,044
12,045
12,046
out_file.txt
----------
12.02.2012
13.02.2012
14.02.2012
15.02.2012
imagine... (5 Replies)
How can I convert any user inputted date into yyyy/mm/dd ?
For example user can input date one of the following 20120121 , 2012-01-21 ,01/21/2012,01/21/2012 etc
But I need to convert any of the date entered by user into yyyy/mm/dd (2012/01/2012). Any suggestion. Thanks in advance
this is... (1 Reply)
I am changing epoch times to dates. I was able to do the following:
echo "$varx" | gawk '{print strftime("%c", $0)}'
Mon Dec 31 16:26:40 2012
This changes the epoch date (which is what varx is) into localtime.
However, my problem is that I only want 12/31/2012 and not the Mon Dec 31... (2 Replies)
I need the date format in YYYY.MM format and I am able to get current month date as well as previous month date with below command
PM=`date +'%Y.%m' -d 'last month'`
CM=`date +'%Y.%m' -d 'now'`
but I need to get YYYY.MM date format for previous 12 months so could you please help me how I get... (2 Replies)
I am getting output of YYYY-MM-DD and want to change this to DD/MM/YYYY.
When am running the query in 'Todd' to_date(column_name,'DD/MM/YYYY') am getting the required o/p of DD/MM/YYYY, But when am executing the same query(Netezza) in linux server(bash) am getting the output of YYYY-MM-DD
file... (3 Replies)
Discussion started by: Roozo
3 Replies
LEARN ABOUT MOJAVE
ncal
CAL(1) BSD General Commands Manual CAL(1)NAME
cal, ncal -- displays a calendar and the date of Easter
SYNOPSIS
cal [-3hjy] [-A number] [-B number] [[month] year]
cal [-3hj] [-A number] [-B number] -m month [year]
ncal [-3hjJpwy] [-A number] [-B number] [-s country_code] [[month] year]
ncal [-3hJeo] [-A number] [-B number] [year]
ncal [-CN] [-H yyyy-mm-dd] [-d yyyy-mm]
DESCRIPTION
The cal utility displays a simple calendar in traditional format and ncal offers an alternative layout, more options and the date of Easter.
The new format is a little cramped but it makes a year fit on a 25x80 terminal. If arguments are not specified, the current month is dis-
played.
The options are as follows:
-h Turns off highlighting of today.
-J Display Julian Calendar, if combined with the -e option, display date of Easter according to the Julian Calendar.
-e Display date of Easter (for western churches).
-j Display Julian days (days one-based, numbered from January 1).
-m month
Display the specified month. If month is specified as a decimal number, it may be followed by the letter 'f' or 'p' to indicate the
following or preceding month of that number, respectively.
-o Display date of Orthodox Easter (Greek and Russian Orthodox Churches).
-p Print the country codes and switching days from Julian to Gregorian Calendar as they are assumed by ncal. The country code as deter-
mined from the local environment is marked with an asterisk.
-s country_code
Assume the switch from Julian to Gregorian Calendar at the date associated with the country_code. If not specified, ncal tries to
guess the switch date from the local environment or falls back to September 2, 1752. This was when Great Britain and her colonies
switched to the Gregorian Calendar.
-w Print the number of the week below each week column.
-y Display a calendar for the specified year.
-3 Display the previous, current and next month surrounding today.
-A number
Display the number of months after the current month.
-B number
Display the number of months before the current month.
-C Switch to cal mode.
-N Switch to ncal mode.
-d yyyy-mm
Use yyyy-mm as the current date (for debugging of date selection).
-H yyyy-mm-dd
Use yyyy-mm-dd as the current date (for debugging of highlighting).
A single parameter specifies the year (1-9999) to be displayed; note the year must be fully specified: ``cal 89'' will not display a calendar
for 1989. Two parameters denote the month and year; the month is either a number between 1 and 12, or a full or abbreviated name as speci-
fied by the current locale. Month and year default to those of the current system clock and time zone (so ``cal -m 8'' will display a calen-
dar for the month of August in the current year).
Not all options can be used together. For example ``-3 -A 2 -B 3 -y -m 7'' would mean: show me the three months around the seventh month,
three before that, two after that and the whole year. ncal will warn about these combinations.
A year starts on January 1.
Highlighting of dates is disabled if stdout is not a tty.
SEE ALSO calendar(3), strftime(3)HISTORY
A cal command appeared in Version 5 AT&T UNIX. The ncal command appeared in FreeBSD 2.2.6.
AUTHORS
The ncal command and manual were written by Wolfgang Helbig <helbig@FreeBSD.org>.
BUGS
The assignment of Julian-Gregorian switching dates to country codes is historically naive for many countries.
Not all options are compatible and using them in different orders will give varying results.
BSD March 14, 2009 BSD