Hello morgon,
My favorite is Date::Manip but it is not a core module, but the possibilities are infinite!
If you like it and it looks a bit complicated let me know to help you.
Update: Small sample of code to calculate Friday next week, two weeks after etc. etc...
#!/usr/bin/perl use strict; use warnings; use Date::Manip; use feature 'say'; my $dateInTwoWeeks = ParseDate("Friday in 2 weeks"); my $unixDate1 = UnixDate($dateInTwoWeeks,"%d-%m-%y"); say $unixDate1; my $dateTwoWeeksAgo = ParseDate("Friday 2 weeks ago"); my $unixDate2 = UnixDate($dateTwoWeeksAgo,"%d-%m-%y"); say $unixDate2; my $dateNextFriday = ParseDate("next Friday"); my $unixDate3 = UnixDate($dateNextFriday,"%d-%m-%y"); say $unixDate3; __END__ $ perl test.pl 09-02-18 12-01-18 02-02-18
Update 2: Sorry I just noticed your description to your problem. Solution is bellow:
#!/usr/bin/perl use strict; use warnings; use Date::Manip; use feature 'say'; my $date = ParseDate("Today"); unless (UnixDate($date, "%A") eq "Friday"){ $date = ParseDate("next Friday"); } say UnixDate($date,"%d-%m-%y"); =different format my $date = ParseDate("Today"); $date = ParseDate("next Friday") unless (UnixDate($date, "%A") eq "Friday"); say UnixDate($date,"%d-%m-%y"); =cut __END__ $ perl test.pl 26-01-18
Hope this helps, BR.
In reply to Re: date arithmetic
by thanos1983
in thread date arithmetic
by morgon
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |