NAME

Date::Holidays::NYSE - Date::Holidays Adapter for New York Stock Exchange (NYSE) holidays

SYNOPSIS

use Date::Holidays::NYSE qw{is_holiday};
my $holiday_name = is_holiday($year, $month, $day);

DESCRIPTION

Date::Holidays Adapter for New York Stock Exchange (NYSE) holidays

Per https://www.nyse.com/markets/hours-calendars these are the NYSE holidays.

New Years Day (not observed on 12/31)
Martin Luther King, Jr. Day
Washington's Birthday
Good Friday (falls between March 20 and April 23)
Memorial Day
Juneteenth National Independence Day (first observed in 2022)
Independence Day
Labor Day
Thanksgiving Day
Christmas Day

It is unclear if Juneteenth were to fall on a weekend that it would be observed. Juneteenth was not observed on Friday June 18th, 2021 but the Law was enacted on June 17th, 2021.

METHODS

is_holiday

Returns a holiday name or undef given three arguments (year, month, day).

my ($year, $month, $day) = (2023, 4, 7);
use Date::Holidays::NYSE qw{is_holiday};
my $holiday_name = is_holiday($year, $month, $day);
if (defined $holiday_name) {
  print "Holiday: $holiday_name\n"; #Good Friday
} else {
  print "Not a NYSE Holiday\n";
}

is_nyse_holiday

Wrapper around is_holiday function per the API specification. See "is_holiday1" in Date::Holidays

holidays

Returns a hash reference containing all of the holidays in the specified year. The keys for the returned hash reference are the dates where 2-digit month and 2-digit day are concatenated.

use Date::Holidays::US qw{holidays};
my $year          = 2023;
my $holidays_href = holidays($year);
foreach my $key (sort keys %$holidays_href) { #e.g. "0101", "0619","0704"
  my ($month, $day) = $key =~ m/\A([0-9]{2})([0-9]{2})\Z/;
  my $name          = $holidays_href->{$key};
  print "Year: $year, Month: $month, Day: $day, Name: $name\n";
}

nyse_holidays

Wrapper around holidays function per the API specification. See "holidays1" in Date::Holidays

TODO

This package assumes that Juneteenth will be observed when it falls on a weekend. However, in 2021 Juneteenth was not observed on Friday June 18th, 2021. The next weekend Juneteenth will be in June 2027.

SEE ALSO

Date::Holidays, Date::Holidays::US

AUTHOR

Michael R. Davis, MRDVT

COPYRIGHT AND LICENSE

Copyright (C) 2023 by Michael R. Davis

MIT License