If a date 20141220 as parameter to the script, then the script has to return the output as 20141219.
i.e given date - 1.
The requirement is simple. But it should satisfy leap year, the months having 31 and 30 days, the date in which day light savings changes happens, etc,.
The date has to be calculated based on the server date and time.
That depends on what your system - which you fail to mention - provides. Above is an example of GNU date, which is not avaiable on every system. (Free)BSD provides
Recent bash has the printf "%(datefmt)T" builtin, but that needs epoch seconds, which may be difficult to get at.
Hi Team,
We have a requirement as follows.
If a date 20141220 as parameter to the script, then the script has to return the output as 20141219.
i.e given date - 1.
The requirement is simple. But it should satisfy leap year, the months having 31 and 30 days, the date in which day light savings changes happens, etc,.
The date has to be calculated based on the server date and time.
Can anyone help me out?
Hello kmanivan82,
Pravin's code will work if you have GNU datein your system. Following code may help you to get the previous date of any input date passed by you to script as follows.
Followings are some examples while running the script:
i- simply get previous day
ii- To check about leap year:
iii- To check date of previous month.
This has been made to get the previous date only, kindly check it and let me know if this helps and you have any queries.
EDIT: Adding a non one liner form of code.
Thanks,
R. Singh
Last edited by RavinderSingh13; 01-01-2015 at 06:15 AM..
Reason: Added a non one liner form of code
If you don't have GNU date, then another alternative is perl if you have that. From your input date, we need to split it up the values and feed them in:-
I hope that this meets the brief you have given us. There may be smarter ways to read & split the input date, so I'm open to suggestions.
Obviously some validity checking on the input would be wise else you will get various horrible messages from the perl
I've put it in a script called 254222 (thread number) and tested it as shown:-
I hope that this helps. I had fun with the challenge and I'm pretty sure I'm going to need it soon myself too, so thanks for the query
How to get Julian date (Three digit) of a given date (Not current date)? I do not have root privilege - so can not use date -d. Assume that we have three variables year, month and date.
Thx (5 Replies)
I need to get the next day's date of the user entered date
for example:
Enter date (yyyy/mm/yy):
2013/10/08I need to get the next day's date of the user entered date
Desired Output:
2013/10/09Though there are ways to achieve this is Linux or Unix environment (date command) ,I need to... (1 Reply)
I am unable to get this KSH script to work. Can someone help. I've been told this should work with KSH93. Which I think I have on Solaris 10.
If I do a grep -i version /usr/dt/bin/dtksh I get
@(#)Version M-12/28/93d
@(#)Version 12/28/93
@(#)Version M-12/28/93
This is correct for... (5 Replies)
Hello
I would like to help me create a script that:
Given a date, more precisely a year, one month and one day. must calculate the day after
-Input: Year, Month, Day
-Output: Next day the Year-Month-Day
thanks (9 Replies)
Hi guys,
I had a scenario...
1. I had to get the previous days date in yyyymmdd format
2. i had to create a file with Date inthe format yyyymmdd.txt format
both are different
thanks guys in advance.. (4 Replies)
I want to calculate the date of next satureday of current date using shell script.
Suppose, today is 27-feb-08
I want to get the date of next satureday, which means 01-mar-08, in the formate '' YYMMDD ".
I do this in ksh..
Please tell me any type of command which help me out.
Thanks in... (3 Replies)
Hi,
I would like to find out how can i calculate a date which is 3 months ago. I intend to run a cron job on the 1st of every month, and calculate the month 4 months earlier from the date. For example, if today's date is 1st May 2007, i would like to return 012007( January 2007).
i can get... (1 Reply)