NAME
Git::Code::Review::Utilities::Date - Date calculation and manipulations
VERSION
version 2.6
SYNOPSIS
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 );
DESCRIPTION
Age, weekend, and special day calculation module optimised for to age calculations from a day in the past to today
NAME
Git::Code::Review::Utilities::Date - Age handling for Git::Code::Review
FUNCTIONS
days_age
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.
load_special_days
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();
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.
special_age
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.
special_days
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.
weekends
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.
weekdays_age
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.
yyyy_mm_dd_to_gmepoch
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.
AUTHOR
Samit Badle
COPYRIGHT
(c) 2015 All rights reserved.
AUTHOR
Brad Lhotsky <brad@divisionbyzero.net>
COPYRIGHT AND LICENSE
This software is Copyright (c) 2014 by Brad Lhotsky.
This is free software, licensed under:
The (three-clause) BSD License