144 lines
3.6 KiB
Plaintext
144 lines
3.6 KiB
Plaintext
=encoding utf-8
|
||
|
||
=head1 NAME
|
||
|
||
Time::Moment::Adjusters - Adjusters for Time::Moment
|
||
|
||
=head1 SYNOPSIS
|
||
|
||
$adjuster = NextDayOfWeek($day);
|
||
$adjuster = NextOrSameDayOfWeek($day);
|
||
|
||
$adjuster = PreviousDayOfWeek($day);
|
||
$adjuster = PreviousOrSameDayOfWeek($day);
|
||
|
||
$adjuster = FirstDayOfWeekInMonth($day);
|
||
$adjuster = LastDayOfWeekInMonth($day);
|
||
|
||
$adjuster = NthDayOfWeekInMonth($ordinal, $day);
|
||
|
||
$adjuster = WesternEasterSunday();
|
||
$adjuster = OrthodoxEasterSunday();
|
||
|
||
$adjuster = NearestMinuteInterval($interval);
|
||
|
||
|
||
=head1 DESCRIPTION
|
||
|
||
C<Time::Moment::Adjusters> provides adjusters. An adjuster is a CODE reference
|
||
invoked with an instance of Time::Moment and is expected to return an instance
|
||
of Time::Moment.
|
||
|
||
=head1 FUNCTIONS
|
||
|
||
=head2 NextDayOfWeek
|
||
|
||
$adjuster = NextDayOfWeek($day);
|
||
|
||
The C<$adjuster> adjusts the date to the next occurrence of the given I<day>
|
||
of the week [1=Monday, 7=Sunday] that is after the date.
|
||
|
||
=head2 NextOrSameDayOfWeek
|
||
|
||
$adjuster = NextOrSameDayOfWeek($day);
|
||
|
||
The C<$adjuster> adjusts the date to the next occurrence of the given I<day>
|
||
of the week [1=Monday, 7=Sunday]. If the date already falls on the given
|
||
I<day> of the week it's unaltered.
|
||
|
||
=head2 PreviousDayOfWeek
|
||
|
||
$adjuster = PreviousDayOfWeek($day);
|
||
|
||
The C<$adjuster> adjusts the date to the previous occurrence of the given
|
||
I<day> of the week [1=Monday, 7=Sunday] that is before the date.
|
||
|
||
=head2 PreviousOrSameDayOfWeek
|
||
|
||
$adjuster = PreviousOrSameDayOfWeek($day);
|
||
|
||
The C<$adjuster> adjusts the date to the previous occurrence of the given
|
||
I<day> of the week [1=Monday, 7=Sunday]. If the date already falls on the
|
||
given I<day> of the week it's unaltered.
|
||
|
||
=head2 FirstDayOfWeekInMonth
|
||
|
||
$adjuster = FirstDayOfWeekInMonth($day);
|
||
|
||
The C<$adjuster> adjusts the date to the first occurrence of the given
|
||
I<day> of the week [1=Monday, 7=Sunday] within the month.
|
||
|
||
=head2 LastDayOfWeekInMonth
|
||
|
||
$adjuster = LastDayOfWeekInMonth($day);
|
||
|
||
The C<$adjuster> adjusts the date to the last occurrence of the given
|
||
I<day> of the week [1=Monday, 7=Sunday] within the month.
|
||
|
||
=head2 NthDayOfWeekInMonth
|
||
|
||
$adjuster = NthDayOfWeekInMonth($ordinal, $day);
|
||
|
||
The C<$adjuster> adjusts the date to the given I<ordinal> I<day> of
|
||
the week within the month.
|
||
|
||
B<Parameters:>
|
||
|
||
=over 4
|
||
|
||
=item ordinal
|
||
|
||
The I<ordinal> of the week within the month [-4, -1] ∪ [1, 4].
|
||
|
||
=item day
|
||
|
||
The I<day> of the week [1=Monday, 7=Sunday].
|
||
|
||
=back
|
||
|
||
=head2 WesternEasterSunday
|
||
|
||
$adjuster = WesternEasterSunday();
|
||
|
||
The C<$adjuster> adjusts the date to the Western Easter Sunday. The Western
|
||
computus is based on the Gregorian calendar.
|
||
|
||
=head2 OrthodoxEasterSunday
|
||
|
||
$adjuster = OrthodoxEasterSunday();
|
||
|
||
The C<$adjuster> adjusts the date to the Orthodox Easter Sunday. The Orthodox
|
||
computus is based on the Julian calendar with the Julian date converted to
|
||
the equivalent Gregorian date.
|
||
|
||
=head2 NearestMinuteInterval
|
||
|
||
$adjuster = NearestMinuteInterval($interval);
|
||
|
||
The C<$adjuster> adjusts the time of day to the nearest minute of the given
|
||
minute I<interval> [1, 1440].
|
||
|
||
Given an minute interval of C<30>:
|
||
|
||
T10:14:59 => T10:00:00
|
||
T10:15:00 => T10:30:00
|
||
T10:29:59 => T10:30:00
|
||
T23:55:00 => T00:00:00 (midnight of the following day)
|
||
|
||
=head1 EXPORTS
|
||
|
||
None by default. All functions can be exported using the C<:all> tag or
|
||
individually.
|
||
|
||
=head1 AUTHOR
|
||
|
||
Christian Hansen C<chansen@cpan.org>
|
||
|
||
=head1 COPYRIGHT
|
||
|
||
Copyright 2015-2017 by Christian Hansen.
|
||
|
||
This is free software; you can redistribute it and/or modify it under
|
||
the same terms as the Perl 5 programming language system itself.
|
||
|