Sponsored Content
Top Forums UNIX for Beginners Questions & Answers Best way to increment weeks based on fiscal start year Post 303005693 by SIMMS7400 on Saturday 21st of October 2017 10:24:07 PM
Old 10-21-2017
Best way to increment weeks based on fiscal start year

Hi Folks -

I'm looking for the best way to to increment fiscal weeks - allow me to explain.

At my one client, 10/01/17 was the beginning if year fiscal year 2018.
Each week, I need to manage a unique set of variable that are updated in my application - they are called substitution variables.

I manage them (manually) in a comma delimited format, and then run a ksh over them to extract both columns and spool them to an "*.mxl" file in a specific import format.

For instance:

Code:
curwk_d,'wk04 fy18';
pw1_d,'wk03 fy18';
pw2_d,'wk02 fy18';
pw3_d,'wk01 fy18';
pw4_d,'wk53 fy17';
p5w_d,'wk52 fy17';
p6w_d,'wk51 fy17';
p7w_d,'wk50 fy17';
p8w_d,'wk49 fy17';
p9w_d,'wk48 fy17';
p10w_d,'wk47 fy17';
p11w_d,'wk46 fy17';
p12w_d,'wk45 fy17';

And then the import format is as such:

Code:
alter system set variable curwk_d 'wk04 fy18';
alter system set variable pw1_d 'wk03 fy18';
alter system set variable pw2_d 'wk02 fy18';
alter system set variable pw3_d 'wk01 fy18';
alter system set variable pw4_d 'wk53 fy17';
alter system set variable pw5_d 'wk52 fy17';
alter system set variable pw6_d 'wk51 fy17';
alter system set variable pw7_d 'wk50 fy17';
alter system set variable pw8_d 'wk49 fy17';
alter system set variable pw9_d 'wk48 fy17';
alter system set variable pw10_d 'wk47 fy17';
alter system set variable pw11_d 'wk46 fy17';
alter system set variable pw12_d 'wk45 fy17';

Then, the "*.mxl" file is read into the target system using a certain utility called from a shell script, but I digress.

As you can see, there are 13 variables. 1 is the current week (from start of fiscal) and the 12 additional previous week variables.

For instance, current week is the upcoming week, which is the 4th week since start of fiscal, as indicated by wk04.

My question is, is there an easy way to manage this and increment as necessary each week (on Saturday) when this is run?

Thank you!

Last edited by SIMMS7400; 10-22-2017 at 12:24 AM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How many weeks in a year

Hi, I search how i could do to find if a year (for example 2004, 1989, 2058) has 52 or 53 weeks... Have you a idea for me please??? (1 Reply)
Discussion started by: Castelior
1 Replies

2. Solaris

Number of files - in start of year

Is there any way to find "Number of files" that exists on my solaris parition in the starting of 2009 year ? I know ctime or mtime will not help and unix wouldnt store creation time. Only hope i can see ( and i am not sure if that will help ) is that my system is up from last 2 years without... (5 Replies)
Discussion started by: rajwinder
5 Replies

3. Shell Programming and Scripting

how to increment days according to year & month

Hiii i have a file with data as shown below: a.dat: RAO 1900 2 7 0 0 0.00 10.8000 76.8000 10.0 0 0.00 0 6.00 0.00 0.00 0 0.00 6.00 0 NULL LEE 1901 2 15 0 0 0.00 26.0000 100.0000 0.0 0 0.00 0 0.00 0.00 0.00 0 6.00 6.00 0 NULL RAO 1901 4... (3 Replies)
Discussion started by: reva
3 Replies

4. Shell Programming and Scripting

My PM has told me to learn shell scripting in 2 weeks , how should I start?

My PM has told me to learn shell scrting in 2 weeks , how should I start?:confused::confused::confused::confused: (1 Reply)
Discussion started by: manalisharmabe
1 Replies

5. Shell Programming and Scripting

Value Increment based on count

Hi All, I have source file x.txt 0001|0003 0031|0031 0045|0049 My desired output should be: y.txt 0001 0002 0003 0031 0045 0046 0047 (11 Replies)
Discussion started by: kmsekhar
11 Replies

6. Shell Programming and Scripting

How to calculate the total number of weeks from a specify year?

Hi anyone can help? How to calculate total number of weeks from a specify date, for example, 01 Jan 2012. Thx! (2 Replies)
Discussion started by: rayray2013
2 Replies

7. Shell Programming and Scripting

Create new file with increment column based on conditions

Hello, Using bash script, i need to process the following file: 887,86,,2013-11-06,1,10030,5,2,0,200,, 887,86,,2013-11-05,1,10030,5,2,0,199,, 887,138,,2013-11-06,1,10031,6,2,0,1610612736,, 887,164,,2013-11-06,1,10000,0,2,0,36000,, and to create a new file such as the below ... (2 Replies)
Discussion started by: JonhyDeep
2 Replies

8. Shell Programming and Scripting

Increment with awk - how to define start value

Hello, I am running under ubuntu18.04 My question is about awk. inputfile 0wo010011oasasds sdjhsdjh=, u12812888 8jsjkahsjajnsanakn akjskjskj=, suhuhuhwx kskkxmsnnxsnjxsnjxsnjjnjjdi=, 22878ssssss Below code adds consecutive numbers when string = is found run_code: awk -F'=' -v OFS='='... (4 Replies)
Discussion started by: baris35
4 Replies

9. Web Development

Color a Badge Based on the Weeks the Member is Active in the Latest Sequence

Hi Ravinder, Could you (and anyone else who wants to help out) check this PHP code and confirm it does what I expect it to do, which is to color a badge based on the weeks a member is active in the latest sequence? I did a cut-paste-change from my "days in sequence" PHP prototype script and it... (6 Replies)
Discussion started by: Neo
6 Replies

10. UNIX for Beginners Questions & Answers

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.. File content: ... (2 Replies)
Discussion started by: nani2019
2 Replies
DateTime::Format::Oracle(3pm)				User Contributed Perl Documentation			     DateTime::Format::Oracle(3pm)

NAME
DateTime::Format::Oracle - Parse and format Oracle dates and timestamps SYNOPSIS
use DateTime::Format::Oracle; $ENV{'NLS_DATE_FORMAT'} = 'YYYY-MM-DD HH24:MI:SS'; my $dt = DateTime::Format::Oracle->parse_datetime('2003-01-16 23:12:01'); my $string = DateTime::Format::Oracle->format_datetime($dt); DESCRIPTION
This module may be used to convert Oracle date and timestamp values into "DateTime" objects. It also can take a "DateTime" object and produce a date string matching the "NLS_DATE_FORMAT". Oracle has flexible date formatting via its "NLS_DATE_FORMAT" session variable. Date values will be returned from Oracle according to the current value of that variable. Date values going into Oracle must also match the current setting of "NLS_DATE_FORMAT". Timestamp values will match either the "NLS_TIMESTAMP_FORMAT" or "NLS_TIMESTAMP_TZ_FORMAT" session variables. This module keeps track of these Oracle session variable values by examining environment variables of the same name. Each time one of Oracle's formatting session variables is updated, the %ENV hash must also be updated. METHODS
This class offers the following methods. o nls_date_format This method is used to determine the current value of Oracle's "NLS_DATE_FORMAT". It currently just reads the value from $ENV{'NLS_DATE_FORMAT'} or if that is not set, from the package variable $nls_date_format, which has a default value of "YYYY-MM-DD HH24:MI:SS". This is a good default to have, but is not Oracle's default. Dates will fail to parse if Oracle's NLS_DATE_FORMAT and the value from this method are not the same. If you want to use the default from this module, you can do something like this after you connect to Oracle: $dbh->do( "alter session set nls_date_format = '" . DateTime::Format::Oracle->nls_date_format . "'" ); o nls_timestamp_format This method is used to determine the current value of Oracle's "NLS_TIMESTAMP_FORMAT". It currently just reads the value from $ENV{'NLS_TIMESTAMP_FORMAT'} or if that is not set, from the package variable $nls_timestamp_format, which has a default value of "YYYY-MM-DD HH24:MI:SS". This is a good default to have, but is not Oracle's default. Dates will fail to parse if Oracle's NLS_TIMESTAMP_FORMAT and the value from this method are not the same. If you want to use the default from this module, you can do something like this after you connect to Oracle: $dbh->do( "alter session set nls_timestamp_format = '" . DateTime::Format::Oracle->nls_timestamp_format . "'" ); o nls_timestamp_tz_format This method is used to determine the current value of Oracle's "NLS_TIMESTAMP_TZ_FORMAT". It currently just reads the value from $ENV{'NLS_TIMESTAMP_TZ_FORMAT'} or if that is not set, from the package variable $nls_timestamp_tz_format, which has a default value of "YYYY-MM-DD HH24:MI:SS TZHTZM". This is a good default to have, but is not Oracle's default. Dates will fail to parse if Oracle's NLS_TIMESTAMP_TZ_FORMAT and the value from this method are not the same. If you want to use the default from this module, you can do something like this after you connect to Oracle: $dbh->do( "alter session set nls_timestamp_tz_format = '" . DateTime::Format::Oracle->nls_timestamp_tz_format . "'" ); o parse_datetime Given a string containing a date and/or time representation matching "NLS_DATE_FORMAT", this method will return a new "DateTime" object. If given an improperly formatted string, this method may die. o parse_date Alias to "parse_datetime". Oracle's date datatype also holds time information. o parse_timestamp Given a string containing a date and/or time representation matching "NLS_TIMESTAMP_FORMAT", this method will return a new "DateTime" object. If given an improperly formatted string, this method may die. o parse_timestamptz =item * parse_timestamp_with_time_zone Given a string containing a date and/or time representation matching "NLS_TIMESTAMP_TZ_FORMAT", this method will return a new "DateTime" object. If given an improperly formatted string, this method may die. o current_date_parser The current "DateTime::Format::Builder" generated parsing method used by "parse_datetime" and "parse_date". o current_timestamp_parser The current "DateTime::Format::Builder" generated parsing method used by "parse_timestamp". o current_timestamptz_parser The current "DateTime::Format::Builder" generated parsing method used by "parse_timestamptz". o format_datetime Given a "DateTime" object, this method returns a string matching the current value of "NLS_DATE_FORMAT". It is important to keep the value of $ENV{'NLS_DATE_FORMAT'} the same as the value of the Oracle session variable "NLS_DATE_FORMAT". To determine the current value of Oracle's "NLS_DATE_FORMAT": select NLS_DATE_FORMAT from NLS_SESSION_PARAMETERS To reset Oracle's "NLS_DATE_FORMAT": alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS' It is generally a good idea to set "NLS_DATE_FORMAT" to an unambiguos value, with four-digit year, and hour, minute, and second. o format_date Alias to "format_datetime". o format_timestamp Given a "DateTime" object, this method returns a string matching the current value of "NLS_TIMESTAMP_FORMAT". It is important to keep the value of $ENV{'NLS_TIMESTAMP_FORMAT'} the same as the value of the Oracle session variable "NLS_TIMESTAMP_FORMAT". To determine the current value of Oracle's "NLS_TIMESTAMP_FORMAT": select NLS_TIMESTAMP_FORMAT from NLS_SESSION_PARAMETERS To reset Oracle's "NLS_TIMESTAMP_FORMAT": alter session set NLS_TIMESTAMP_FORMAT='YYYY-MM-DD HH24:MI:SS' It is generally a good idea to set "NLS_TIMESTAMP_FORMAT" to an unambiguos value, with four-digit year, and hour, minute, and second. o format_timestamptz =item * format_timestamp_with_time_zone Given a "DateTime" object, this method returns a string matching the current value of "NLS_TIMESTAMP_TZ_FORMAT". It is important to keep the value of $ENV{'NLS_TIMESTAMP_TZ_FORMAT'} the same as the value of the Oracle session variable "NLS_TIMESTAMP_TZ_FORMAT". To determine the current value of Oracle's "NLS_TIMESTAMP_TZ_FORMAT": select NLS_TIMESTAMP_TZ_FORMAT from NLS_SESSION_PARAMETERS To reset Oracle's "NLS_TIMESTAMP_TZ_FORMAT": alter session set NLS_TIMESTAMP_TZ_FORMAT='YYYY-MM-DD HH24:MI:SS TZHTZM' It is generally a good idea to set "NLS_TIMESTAMP_TZ_FORMAT" to an unambiguos value, with four-digit year, and hour, minute, and second. o current_date_format The current generated method used by "format_datetime", "format_date", and "current_date_parser" to keep track of the "strptime" translation of "NLS_DATE_FORMAT". o current_timestamp_format The current generated method used by "format_timestamp", "format_timestamp_with_time_zone", and "current_timestamp_parser" to keep track of the "strptime" translation of "NLS_TIMESTAMP_FORMAT". o current_timestamptz_format The current generated method used by "format_timestamptz", "format_timestamp_with_time_zone", and "current_timestamp_parser" to keep track of the "strptime" translation of "NLS_TIMESTAMP_FORMAT". o oracle_to_posix Given an "NLS_DATE_FORMAT", "NLS_TIMESTAMP_FORMAT", or "NLS_TIMESTAMP_TZ_FORMAT" value, this method returns a "DateTime"-compatible "strptime" format value. Translation is currently handled by "Convert::NLS_DATE_FORMAT". LIMITATIONS
Oracle is more flexible with the case of names, such as the month, whereas "DateTime" generally returns names in "ucfirst" format. MONTH -> FEBRUARY Month -> February month -> february All translate to: %B -> February TIME ZONES Oracle returns all dates and timestamps in a time zone similar to the "DateTime" floating time zone, except for 'timestamp with time zone' columns. INTERVAL ELEMENTS I have not implemented "parse_duration", "format_duration", "parse_interval", nor "format_interval", and have no plans to do so. If you need these features, unit tests, method implementations, and pointers to documentation are all welcome. SUPPORT
Support for this module is provided via the datetime@perl.org email list. See http://lists.perl.org/ for more details. TODO
Possibly read an environment variable to determine a time zone to use instead of 'floating'. Test and document creating an instance via "new". AUTHOR
Nathan Gray, <kolibrie@cpan.org> ACKNOWLEDGEMENTS
I might have put this module off for another couple years without the lure of Jifty, Catalyst, and DBIx::Class pulling at me. Thanks to Dan Horne for his RFC draft of this module. COPYRIGHT &; LICENSE Copyright (C) 2006, 2008, 2011 Nathan Gray. This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.4 or, at your option, any later version of Perl 5 you may have available. SEE ALSO
Convert::NLS_DATE_FORMAT datetime@perl.org mailing list http://datetime.perl.org/ perl v5.12.4 2011-10-12 DateTime::Format::Oracle(3pm)
All times are GMT -4. The time now is 05:54 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy