The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.
NAME
    Date::ISO - Perl extension for converting dates between ISO and
    Gregorian formats.

SYNOPSIS
      use Date::ISO;
      $iso = Date::ISO->new( iso => $iso_date_string );
      $iso = Date::ISO->new( epoch => $epoch_time );
      $iso = Date::ISO->new( ical => $ical_string );
      $iso = Date::ISO->new( year => $year, month => $month,
                             day => $day );

      $iso_year = $iso->iso_year;
      $year = $iso->year;

      $iso_week = $iso->iso_week;
      $week_day = $iso->iso_week_day;

      $month = $iso->month;
      $day = $iso->day;

    And, for backward compatibility:

      ($yearnumber, $weeknumber, $weekday) = iso($year, $month, $day);
      ($yearnumber, $weeknumber, $weekday) = localiso(time);
      ($year, $month, $day) = inverseiso($iso_year, $iso_week,
                                         $iso_week_day);

DESCRIPTION
    Convert dates between ISO and Gregorian formats.

  new

        my $iso = Date::ISO->new( iso => $iso_date_string );
        my $iso = Date::ISO->new( epoch = $epoch_time );

    And, since this is a Date::ICal subclass ...

        my $iso = Date::ISO->new( ical => $ical_string );
        $ical = $iso->ical;

    Accepted ISO date string formats are:

        1997-02-05 (Feb 5, 1997)
        19970205 (Same)
        199702 (February 1997)
        1997-W06 (6th week, 1997)
        1997W06 (Same)
        1997-W06-2 (6th week, 2nd day)
        1997W062 (Same as above)
        1997-035 (35th day of 1997)
        1997035 (Same as above)

    2-digit representations of the year are not supported at this time.

    Time values are not supported at this time.

Backwards compatibiilty methods
    The following functional interface is provided for backwards
    compatibility with former versions.

  iso

     $iso = iso($year, $month, $day);

AUTHOR
    Rich Bowen (rbowen@rcbowen.com)

DATE
    $Date: 2001/08/23 02:04:00 $

Additional comments
    For more information about this calendar, please see:

    http://personal.ecu.edu/mccartyr/ISOwdALG.txt

    http://personal.ecu.edu/mccartyr/isowdcal.html

    http://personal.ecu.edu/mccartyr/aboutwdc.htm

    http://www.cl.cam.ac.uk/~mgk25/iso-time.html

    http://www.fourmilab.ch/documents/calendar/

    Finally, many many many thanks to Rick McCarty who provided me with the
    algorithms that I'm using for conversions to and from ISO dates. All the
    errors in previous versions of this module were entirely my fault for
    miscopying something from his algorithm.

To Do, Bugs
    Need to flesh out test suite some more. Particularly need to test some
    dates immediately before and after the first day of the year - days in
    which you might be in a different Gregorian and ISO years.

    ISO date format also supports a variety of time formats. I suppose I
    should accept those as valid arguments.

    Creating a Date::ISO object with an ISO string, and then immediately
    getting the ISO string representation of that object, is not giving back
    what we started with. I'm not at all sure what is going on.