Sunday, February 28, 2021

2021 Holiday Schedule

DateHoliday
Friday, January 1 New Year’s Day
Monday, January 18 Birthday of Martin Luther King, Jr.
Wednesday, January 20* Inauguration Day
Monday, February 15** Washington’s Birthday
Monday, May 31 Memorial Day
Monday, July 5*** Independence Day
Monday, September 6 Labor Day
Monday, October 11 Columbus Day
Thursday, November 11 Veterans Day
Thursday, November 25 Thanksgiving Day
Friday, December 24**** Christmas Day

 *This holiday is designated as "Inauguration Day" in section 6103(c) of title 5 of the United States Code, which is the law that specifies holidays for Federal employees. Federal employees in the Washington, DC area are entitled to a holiday on the day a President is inaugurated, January 20 for each fourth year after 1965. Though other institutions such as state and local governments and private businesses may use other names, it is our policy to always refer to holidays by the names designated in the law.

**This holiday is designated as "Washington’s Birthday" in section 6103(a) of title 5 of the United States Code, which is the law that specifies holidays for Federal employees. Though other institutions such as state and local governments and private businesses may use other names, it is our policy to always refer to holidays by the names designated in the law.

***July 4, 2021 (the legal public holiday for Independence Day), falls on a Sunday. For most Federal employees, Monday, July 5, will be treated as a holiday for pay and leave purposes. (See 5 U.S.C. 6103(b).)

****December 25, 2021 (the legal public holiday for Christmas Day), falls on a Saturday. For most Federal employees, Friday, December 24, will be treated as a holiday for pay and leave purposes. (See section 3(a) of Executive order 11582, February 11, 1971.) 

 Taken from:  https://www.opm.gov/policy-data-oversight/pay-leave/federal-holidays/#url=2021
 

Capturing with Perl and REGEX two numbers on a line, one of them is optional

 #!/usr/bin/perl

use strict;
use warnings;

sub get_long_short {
   my ($number, $spaces1, $spaces2) = @_;
   my ($long, $short) = ('', '');

   if (length($spaces1) > length($spaces2))
   {
      $short = $number;
   } else {
      $long = $number;
   }

   return ($long, $short);
}

while (<DATA>) {

   chomp();

   if (my ($b1, $n1, $n2, $b2, $s) = /
      ^(\s*)            # First spaces ($b1)
      ([\d,.]+)         # First number always exists ($n1)
      (?:               # Don't want to capture spaces
      \s+               # in front
      ([\d,.]+)         # Second number ($n2)
      )?                # Second number is optional
      (\s+)             # Space always exists ($b2)
      (\w{2,3})$        # Two or three letters symbol ($s)
      /x)
   {
      my ($long, $short);

      if (defined($n2)) {
         $long = $n1;
         $short = $n2;
      } else {
         ($long, $short) = get_long_short($n1, $b1, $b2);
      }

      $long =~ s/,//g;
      $short =~ s/,//g;

      print("$long|$short|$s\n");

   } else {
      print("NOT MATCHED: $_\n");
   }
}

__END__
long short symbol
12 3  NG
1,234 1,222 CL
1,333       PL
123.4 9,088     HNG
123.4 9,088     BBBB
       90.65 HO
   1   RB
    2  RB
     3 RB
4      RB
  100,000.00     CL
  CL