Sponsored Content
Top Forums Shell Programming and Scripting Find the next day from 20100303 (YYYYMMDD format) Post 302401549 by drewk on Saturday 6th of March 2010 07:27:54 PM
Old 03-06-2010
As stated above, this FAQ will tell you what you need for more complex date and date arithmetic: https://www.unix.com/answers-frequent...rithmetic.html

For this specific problem, you can just use the date command.

If you have the GNU version of date, just use:

Code:
date -d "yesterday" "+%Y%m%d"

If you have BSD, POSIX, Solaris version of date, here is a simple shell script that will do it.

Code:
#!/bin/bash

#call with (basename) 'YYYYMMDD' [+-deltadays]

#there is no error checking, use at your own use...

if [ ! -n "$1" ]
then
  echo "Usage: $(basename $0) YYYYMMDD [+-days]"
  exit $E_BADARGS
fi  

if [ ! -n "$2" ]
then
  	deltadays=-1
  else
	deltadays=$2
fi  


epoch=$(date -j -f "%Y%m%d" $1 "+%s")

(( deltadays *= 60*60*24 ))
(( epoch += deltadays )) 

newday=$(date -j -f "%s" $epoch "+%Y%m%d")

echo $newday

 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

get yesterday date in yyyymmdd format

I would like to know how I could get a yesterday date in yyyymmdd e.g. today is 20011109, and I would like to get 20011108. Thank you!:confused: (2 Replies)
Discussion started by: hk_newbie
2 Replies

2. HP-UX

How can i get the yesterday's date in YYYYMMDD format

How can i get the yesterday's date in YYYYMMDD format??? (4 Replies)
Discussion started by: prasadsr
4 Replies

3. Shell Programming and Scripting

get yesterday in yyyymmdd format

how can i get yesterday in yyyymmdd format? :confused: (13 Replies)
Discussion started by: aaron_fong
13 Replies

4. UNIX for Dummies Questions & Answers

Format date from MM/DD/YYYY to YYYYMMDD

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)
Discussion started by: ChicagoBlues
5 Replies

5. Shell Programming and Scripting

convert date format YYYYMMDD to MM/DD/YYYY

In my shell script i have a variable which stores date in the format of YYYYMMDD. Is there any way to format this value to MM/DD/YYYY. Thanks. (8 Replies)
Discussion started by: nasirgondal
8 Replies

6. Solaris

Date after 5 dates in YYYYMMDD format

Hi Experts, How to get date 5 days after current date in YYYYMMDD format? How do we compare date in YYYYMMDD format? Thanks (1 Reply)
Discussion started by: needyourhelp10
1 Replies

7. Shell Programming and Scripting

Find first created file date in YYYYMMDD format

Hi All, We are copying all the files into ARCHIVE directory after we process them. We are doing this process from last 2 years, now we have a lot of files in ARCHIVE directory. Now I need to find when the first file is copied into this directory? If I Issue, ls -l /ARCHIVE/*.* | tail -1... (3 Replies)
Discussion started by: Raamc
3 Replies

8. Shell Programming and Scripting

Validating date in yyyymmdd format using PERL

Hi all, i had a code where in user will enter a date in yyyymmdd format.. i didnt use any validation for the date and now the problem is if a user enters date instead of month after year it is proceeding with the code.. like if the date is 20120426 and if the user enters 20122604 it... (4 Replies)
Discussion started by: smarty86
4 Replies

9. Shell Programming and Scripting

Date format to be changed from DDMMYYYY to YYYYMMDD

My requirement is:- there will be files at a location each day with the date format DDMMYYYY. Novawise_Activity_Call_Notes_04022013.txt Novawise_Activity_Inbound_04022013.txt Novawise_Activity_Inbound_05022013.txt Novawise_Activity_Call_Notes_05022013.txt... (8 Replies)
Discussion started by: djrulz123
8 Replies

10. Shell Programming and Scripting

How to conver YYYYMMDD to MJD format?

I would like to convert YYYYMMDD to MJD format for eg 20041223 converted to 53362 in MJD format i got logic from javascript to covert it to MJD which is long enough function YMDtoMJD (year, month, day) { var year; var monthi var day; var yr = Math.floor (year); ... (1 Reply)
Discussion started by: mandalmanas24
1 Replies
DATETIME.__CONSTRUCT(3) 						 1						   DATETIME.__CONSTRUCT(3)

DateTime::__construct - Returns new DateTime object

       Object oriented style

SYNOPSIS
public DateTime::__construct NULL ([string $time = "now"], [DateTimeZone $timezone]) DESCRIPTION
Procedural style DateTime date_create NULL ([string $time = "now"], [DateTimeZone $timezone]) Returns new DateTime object. PARAMETERS
o $time -A date/time string. Valid formats are explained in Date and Time Formats. Enter NULL here to obtain the current time when using the $timezone parameter. o $timezone - A DateTimeZone object representing the timezone of $time. If $timezone is omitted, the current timezone will be used. Note The $timezone parameter and the current timezone are ignored when the $time parameter either is a UNIX timestamp (e.g. @946684800) or specifies a timezone (e.g. 2010-01-28T15:00:00+02:00). RETURN VALUES
Returns a new DateTime instance. Procedural style returns FALSE on failure. ERRORS
/EXCEPTIONS Emits Exception in case of an error. CHANGELOG
+--------+---------------------------------------------------+ |Version | | | | | | | Description | | | | +--------+---------------------------------------------------+ | 5.3.0 | | | | | | | If $time contains an invalid date/time format, | | | then an exception is now thrown. Previously an | | | error was emitted. | | | | +--------+---------------------------------------------------+ EXAMPLES
Example #1 DateTime.__construct(3) example Object oriented style <?php try { $date = new DateTime('2000-01-01'); } catch (Exception $e) { echo $e->getMessage(); exit(1); } echo $date->format('Y-m-d'); ?> Procedural style <?php $date = date_create('2000-01-01'); if (!$date) { $e = date_get_last_errors(); foreach ($e['errors'] as $error) { echo "$error "; } exit(1); } echo date_format($date, 'Y-m-d'); ?> The above examples will output: 2000-01-01 Example #2 Intricacies of DateTime.__construct(3) <?php // Specified date/time in your computer's time zone. $date = new DateTime('2000-01-01'); echo $date->format('Y-m-d H:i:sP') . " "; // Specified date/time in the specified time zone. $date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru')); echo $date->format('Y-m-d H:i:sP') . " "; // Current date/time in your computer's time zone. $date = new DateTime(); echo $date->format('Y-m-d H:i:sP') . " "; // Current date/time in the specified time zone. $date = new DateTime(null, new DateTimeZone('Pacific/Nauru')); echo $date->format('Y-m-d H:i:sP') . " "; // Using a UNIX timestamp. Notice the result is in the UTC time zone. $date = new DateTime('@946684800'); echo $date->format('Y-m-d H:i:sP') . " "; // Non-existent values roll over. $date = new DateTime('2000-02-30'); echo $date->format('Y-m-d H:i:sP') . " "; ?> The above example will output something similar to: 2000-01-01 00:00:00-05:00 2000-01-01 00:00:00+12:00 2010-04-24 10:24:16-04:00 2010-04-25 02:24:16+12:00 2000-01-01 00:00:00+00:00 2000-03-01 00:00:00-05:00 SEE ALSO
DateTime.createFromFormat(3), DateTimeZone.__construct(3), Date and Time Formats, date.timezone ini setting, date_default_time- zone_set(3), DateTime.getLastErrors(3), checkdate(3). PHP Documentation Group DATETIME.__CONSTRUCT(3)
All times are GMT -4. The time now is 09:53 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy