- COPYRIGHT AND LICENSE
Git::Code::Review::Utilities::Date - Date calculation and manipulations
use Git::Code::Review::Utilities::Date qw( days_age load_special_days reset_date_caches special_age special_days weekends weekdays_age yyyy_mm_dd_to_gmepoch );
Age, weekend, and special day calculation module optimised for to age calculations from a day in the past to today
Git::Code::Review::Utilities::Date - Age handling for Git::Code::Review
my $age = days_age( '2015-07-12' );
Get the number of days between today and the specified day in YYYY-MM-DD format. You can set the date used for today using reset_date_caches() function. If today is '2015-08-12', days_age( '2015-08-11' ) should return 1.
my $special_days = load_special_days( 'national_holidays_nl.txt', 'non_working_days.txt', 'sick_days.txt' ); my $special_days = load_special_days();
Loads special days from one or more text files containing special days in a YYYY-MM-DD format. The files can have one or more dates per line. If more than one dates are on a line, they should be separated by commas. White spaces can be added around the dates and will be ignored and so will any part of the line starting from a # character to allow comments. See the holidays.txt in the tests for a sample file. Special days falling on a Saturday or a Sunday are ignored.
Returns a copy of the currently loaded special days. Call without any arguments to get the complete current list of special days. You can also use special_days() to get a list of special days between two dates.
reset_date_caches(); reset_date_caches( yyyy_mm_dd_to_gmepoch( '2015-08-01' ) );
Clear all the internal caches of ages and special days and reset the TODAY epoch used internally to the current day or the one supplied. Useful when the day changes or during testing. Do remember to load the special days if you want them again.
my $age = special_age( '2015-08-01' );
Get the number of days between today and the specified day in YYYY-MM-DD format excluding the weekend days and currently loaded special days. You can set the date used for today using reset_date_caches() function.
my $special_days = special_days( yyyy_mm_dd_to_gmepoch( '2015-04-01' ), yyyy_mm_dd_to_gmepoch( '2015-04-30' ) );
Get a array_ref to the special days included in the given date range, both inclusive. The returned list contains epochs as returned by yyyy_mm_dd_to_gmepoch() function.
my $weekends = weekends( $start_day, $days ); my $weekends = weekends( 1, 10 ); # 1 = Monday && 10 days
Returns the number of weekend days in a period of days starting on a given week day. The start_day can be 0 .. 6 for Sunday .. Saturday or 1 .. 7 for Monday .. Sunday.
my $age = weekdays_age( '2015-08-01' );
Get the number of days between today and the specified date in YYYY-MM-DD format excluding the weekend days. You can set the date used for today using reset_date_caches() function.
my $epoch = yyyy_mm_dd_to_gmepoch( '2015-08-01' );
Returns the midnight epoch for the date specified in the YYYY-MM-DD format in GMT timezone. There is no Daylight Saving Time in GMT, which makes it easier for calculations.
(c) 2015 All rights reserved.
Brad Lhotsky <email@example.com>
This software is Copyright (c) 2014 by Brad Lhotsky.
This is free software, licensed under:
The (three-clause) BSD License