Sponsored Content
Top Forums UNIX for Beginners Questions & Answers Splitting week start date and end date based on custom period start dates Post 303043750 by nani2019 on Wednesday 5th of February 2020 11:04:48 AM
Old 02-05-2020
Splitting week start date and end date based on custom period start dates

Below are my custom period start and end dates based on a calender, these dates are placed in a file, for each period i need to split into three weeks for each period row, example is given below.

Could you please help out to achieve solution through shell script..

Code:
 File content:

period_start_date	period_end_date	period_code
2020-01-01	2020-01-15	P1
2020-01-05	2020-01-19	P2
2020-01-16	2020-01-31	P1
2020-01-20	2020-02-04	P2
2020-02-01	2020-02-15	P1
2020-02-05	2020-02-19	P2
2020-02-16	2020-02-29	P1
2020-02-20	2020-03-04	P2
2020-03-01	2020-03-15	P1
2020-03-05	2020-03-19	P2
2020-03-16	2020-03-31	P1
2020-03-20	2020-04-04	P2
2020-04-01	2020-04-15	P1
2020-04-05	2020-04-19	P2
2020-04-16	2020-04-30	P1
2020-04-20	2020-05-04	P2
2020-05-01	2020-05-15	P1
2020-05-05	2020-05-19	P2
2020-05-16	2020-05-31	P1
2020-05-20	2020-06-04	P2

Code:
Expected Result for  					
1) period start date 	2020-01-01	Period End date	2020-01-15	Period code 	 P1        
2) period start date 	2020-01-05	Period End date	2020-01-19	Period code 	 P2     
3) period start date 	2020-01-16	Period End date	2020-01-31	Period code 	 P1     
4) period start date 	2020-01-20	Period End date	2020-02-04	Period code 	 P2

Code:
week Start Date	Week End Date	Period strat Date	Period end Date	Period code
2020-01-01	2020-01-05	2020-01-01	2020-01-15	P1
2020-01-06	2020-01-12	2020-01-01	2020-01-15	P1
2020-01-13	2020-01-15	2020-01-01	2020-01-15	P1
2020-01-05	2020-01-05	2020-01-05	2020-01-19	P2
2020-01-06	2020-01-12	2020-01-05	2020-01-19	P2
2020-01-13	2020-01-19	2020-01-05	2020-01-19	P2
2020-01-16	2020-01-19	2020-01-16	2020-01-31	P1
2020-01-20	2020-01-26	2020-01-16	2020-01-31	P1
2020-01-27	2020-01-31	2020-01-16	2020-01-31	P1
2020-01-20	2020-01-26	2020-01-20	2020-02-04	P2
2020-01-27	2020-02-02	2020-01-20	2020-02-04	P2
2020-02-03	2020-02-04	2020-01-20	2020-02-04	P2


Last edited by nani2019; 02-05-2020 at 12:05 PM.. Reason: none
 

7 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Compare Start date and End date...

Hi All, I have problem in my file. It has two date variable. There are 2 variables which has the values as below 1. START_MONTH = “Date(YYYYMM) format” Ex: 201008 2. END_MONTH = “Date(YYYYMM) format” Ex: 201105 The end date should be greater than start date. Now we... (3 Replies)
Discussion started by: suresh01_apk
3 Replies

2. Shell Programming and Scripting

Need to capture all dates between start date and End date.

Hi All, I enter Start date and end date as parameters. I need to capture dates between start date and end date. Please let me know if you have any idea the same. Thanks in advance. Nagaraja Akkivalli. (5 Replies)
Discussion started by: Nagaraja Akkiva
5 Replies

3. Shell Programming and Scripting

Need to capture dates between start date and end date Using perl.

Hi All, Want to get all dates and Julian week number for that date between the start date and end date. How can I achive this using perl? (To achive above functionality, I was connecting to the database from DB server. Need to execute the same script in application server, since databse... (6 Replies)
Discussion started by: Nagaraja Akkiva
6 Replies

4. Shell Programming and Scripting

Extract week start,end date from given date in PERL

Hi All, what i want to do in perl is i should give the date at run time .Suppose date given is 23/12/2011(mm/dd/yyyy) the perl script shold find week start date, week end date, previous week start date,end date,next week start date, end date. In this case week start date will be-:12/19/2011... (2 Replies)
Discussion started by: parthmittal2007
2 Replies

5. Shell Programming and Scripting

Getting the Start, End time and duration using date command

Oracle Enterprise Linux We want to track how long a process takes to complete its execution. This is what we want in the schell script Before the process is started , get the time with date, hours and minutes execute the process After the process has ended , get the time with date,... (5 Replies)
Discussion started by: omega3
5 Replies

6. Shell Programming and Scripting

Get the lines from logfile within start and end date

Hi guys, I am having the below logfile,date in yyyy-mm-dd 2013-08-02 *some content* 2013-08-02 *some content* 2013-08-02 *some content* 2013-08-03 *some content* 2013-08-05 *some content* from the above logfile i need to get the lines between the two timestamps,if i give... (5 Replies)
Discussion started by: mohanalakshmi
5 Replies

7. UNIX for Dummies Questions & Answers

Print start date to end date, given $1 & $2 in ksh

Dear all, I have an user passing 2 parameter 31/03/2015 and 02/04/2015 to a ksh script. How to print the start date to end date. Expected output is : 31/03/2015 01/04/2015 02/04/2015 Note : 1. Im using aix and ksh 2. I have tried to convert the given input into a date, didnt... (0 Replies)
Discussion started by: mr.rajaravi
0 Replies
PARSEDATE(3)						     Library Functions Manual						      PARSEDATE(3)

NAME
parsedate - convert time and date string to number SYNOPSIS
#include <sys/types.h> typedef struct _TIMEINFO { time_t time; long usec; long tzone; } TIMEINFO; time_t parsedate(text, now) char *text; TIMEINFO *now; DESCRIPTION
Parsedate converts many common time specifications into the number of seconds since the epoch -- i.e., a time_t; see time(2). Parsedate returns the time, or -1 on error. Text is a character string containing the time and date. Now is a pointer to the time that should be used for calculating relative dates. If now is NULL, then GetTimeInfo in libinn(3) is used to obtain the current time and time- zone. The character string consists of zero or more specifications of the following form: time A time of day, which is of the form hh[:mm[:ss]] [meridian] [zone] or hhmm [meridian] [zone]. If no meridian is specified, hh is interpreted on a 24-hour clock. date A specific month and day with optional year. The acceptable formats are mm/dd[/yy], yyyy/mm/dd, monthname dd[, yy], dd monthname [yy], and day, dd monthname yy. The default year is the current year. If the year is less then 100, then 1900 is added to it; if it is less then 21, then 2000 is added to it. relative time A specification relative to the current time. The format is number unit; acceptable units are year, month, week, day, hour, minute (or min), and second (or sec). The unit can be specified as a singular or plural, as in 3 weeks. The actual date is calculated according to the following steps. First, any absolute date and/or time is processed and converted. Using that time as the base, day-of-week specifications are added. Next, relative specifications are used. If a date or day is specified, and no absolute or relative time is given, midnight is used. Finally, a correction is applied so that the correct hour of the day is produced after allowing for daylight savings time differences. Parsedate ignores case when parsing all words; unknown words are taken to be unknown timezones, which are treated as GMT. The names of the months and days of the week can be abbreviated to their first three letters, with optional trailing period. Periods are ignored in any timezone or meridian values. BUGS
Parsedate does not accept all desirable and unambiguous constructions. Semantically incorrect dates such as ``February 31'' are accepted. Daylight savings time is always taken as a one-hour change which is wrong for some places. The daylight savings time correction can get confused if parsing a time within an hour of when the reckoning changes, or if given a partial date. HISTORY
Originally written by Steven M. Bellovin <smb@research.att.com> while at the University of North Carolina at Chapel Hill and distributed under the name getdate. A major overhaul was done by Rich $alz <rsalz@bbn.com> and Jim Berets <jberets@bbn.com> in August, 1990. It was further revised (primarily to remove obsolete constructs and timezone names) a year later by Rich (now <rsalz@osf.org>) for Inter- NetNews, and the name was changed. This is revision 1.10, dated 1993/01/29. SEE ALSO
date(1), ctime(3), libinn(3), time(2). PARSEDATE(3)
All times are GMT -4. The time now is 03:38 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy