Convert string (YYYYMMDD) format to date in Sun OS


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
Operating Systems Solaris Convert string (YYYYMMDD) format to date in Sun OS
# 1  
Convert string (YYYYMMDD) format to date in Sun OS

Hi All

I need help in converting a string of YYYYMMDD format to date in Sun OS and then find out if the day is a Wednesday or not. The "date -d" option is not working and your help is much appreciated.

The date command usage from the operating system we use here is as follows:
Quote:
usage:
date [-u] mmddHHMM[[cc]yy][.SS]
date [-u] [+format]
date -a [-]sss[.fff]
Thanks,
SK

Last edited by rbatte1; 03-29-2018 at 01:29 PM..
# 2  
what is the 'date' format?
Please be more specific.
This User Gave Thanks to vgersh99 For This Post:
# 3  
Any format is OK, because I need to find out the day after that. I am only worried about getting the day (For example: Wednesday) from the string (YYYYMMDD) I am passing.
# 4  
This might be of interest or help:
General Purpose Date Script
Courtesy of Corona688.
EDIT:
A little bit of googling...
SunOS man pages : date (1)

Last edited by wisecracker; 03-27-2018 at 03:26 PM.. Reason: See above...
This User Gave Thanks to wisecracker For This Post:
# 5  
a bit verbose, but you could start here - isWed.sh:
Code:
#!/bin/bash

if [ ${#} -ne 1 ];then
   echo "invalid number of arguments : ${0} YYYYMMDD"
   exit 1
fi

d="${1}"
# wed from cal
dayOFweek=4

YEAR=${d%????}
DAY=${d#??????}
MON=${d#$YEAR}
MON=${MON%$DAY}
echo $YEAR/$MON/$DAY

dow=$(cal "${MON}" "${YEAR}" | awk -v day="${DAY}" '
  FNR==2 {split($0,daysA)}
  FNR > 2 {
    for(i=1; i <= NF; i++)
      if ( $i == day) {
        #printf("day->[%d] row->[%d]\n", $i, FNR-2)
        #printf("%d\n", (NF == 7 || FNR!=3) ? i-1 : i+(6-NF))
        printf("%d\n", (NF == 7 || FNR!=3) ? i : i+(6-NF)+1)
        exit
      }
  }
')

if [ ${dow} -eq ${dayOFweek} ]; then
   echo yes
else
   echo no
fi

isWed.sh 20180329
isWed.sh 20180328

Last edited by vgersh99; 03-27-2018 at 04:06 PM..
This User Gave Thanks to vgersh99 For This Post:
# 6  
there was a failure in this script:

Code:
bash-3.2$ ./isWed.sh 20180328
2018/03/28
awk: syntax error near line 1
awk: bailing out near line 1
./isWed.sh: line 31: [: -eq: unary operator expected
no

---------- Post updated at 04:26 PM ---------- Previous update was at 04:09 PM ----------

Found answer from the following thread:

awk: bailing out

Thanks a lot for your help.

Last edited by rbatte1; 03-29-2018 at 01:31 PM..
# 7  
You could do this with perl eg:

Code:
#!/bin/perl
use POSIX;
use Time::Local;

my ($yyyy, $mm, $dd) = (
   $ARGV[0] =~ /([0-9]{4}) ([0-9]{2}) ([0-9]{2})/x
);

eval {
   print strftime("%a\n", localtime(timelocal(0,0,0,$dd,$mm - 1,$yyyy)))
};
print "ERROR: Format is YYYYMMDD\n" if $@;


Or, for a bit if fun, you could use cal and nawk like this:

Code:
Y=${1%????}
M=${1#????}
D=${M#??}
M=${M%??}
cal $M $Y | nawk '/^[A-Z]/ { split($0, dayname, " ") } dayname[1] && match($0, wd) { print dayname[int((RSTART+2)/3)] ; exit }' wd=$D

Assumption here is that each day takes three vertical text columns like this so when we find a day in the cal output we can calculate the heading it is under:

Code:
     March 2018     
Su Mo Tu We Th Fr Sa
             1  2  3 
 4  5  6  7  8  9 10 
11 12 13 14 15 16 17 
18 19 20 21 22 23 24 
25 26 27 28 29 30 31

Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #547
Difficulty: Medium
unary operators only operate on universal variables.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Convert string (YYYYMMDD) format to date in Sun OS

Hi All I need help in converting a string of YYYYMMDD format to date in Sun OS and then find out if the day is a Wednesday or not. The "date -d" option is not working and your help is much appreciated. The date command usage from the operating system we use here is as follows: usage: ... (1 Reply)
Discussion started by: SK123
1 Replies

2. Shell Programming and Scripting

Convert string into date format

Hi, I am getting the below string as a input for date. 12/03/2013 11:02 AM I want to change this date as 03-DEC-2013 11:02 AM. Could you please help on this. Thanks Chelladurai (4 Replies)
Discussion started by: ckchelladurai
4 Replies

3. Shell Programming and Scripting

Date after 5 days from current date in YYYYMMDD format

Hello Experts, How do i get date after 5 days from current date in YYYYMMDD format? How do you compare date in YYYYMMDD format? Thanks (8 Replies)
Discussion started by: needyourhelp10
8 Replies

4. 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

5. Shell Programming and Scripting

PERL String to Date (Custom format yyyymmdd to dd-mon-yyyy)

Hi All, I am learning PERL for one of the projects, and in one of these scripts, I read a flat text file and print in the terminal. The problem is, the text file has a date field. The format is yyyymmdd. I need to display this as dd-mon-yyyy. Any ideas to do this? Thanks a lot for the... (9 Replies)
Discussion started by: guruparan18
9 Replies

6. Shell Programming and Scripting

To convert a date(in string format) to unix timestamp

Hi All, I have a string like below. "Mar 31 2009" . I want to convert this to unix time . Also please let me know how to find the unix time for the above string minus one day. For Eg. if i have string "Mar 31 2009" i want to find the unix time stamp of "Mar 30 2009". Thanks in advance,... (11 Replies)
Discussion started by: girish.raos
11 Replies

7. 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

8. 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

9. UNIX for Dummies Questions & Answers

how to convert the string YYYYMMDD into YYYY.MM.DD

how to convert the string YYYYMMDD into YYYY.MM.DD Please advice (1 Reply)
Discussion started by: spatra
1 Replies

10. 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

Featured Tech Videos