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

Calendar::Persian - Interface to Persian Calendar.

VERSION

Version 0.07

DESCRIPTION

The Persian calendar is solar, with the particularity that the year defined by two successive, apparent passages of the Sun through the vernal (spring) equinox. It is based on precise astronomical observations, and moreover uses a sophisticated intercalation system, which makes it more accurate than its younger European counterpart,the Gregorian calendar. It is currently used in Iran as the official calendar of the country.The starting point of the current Iranian calendar is the vernal equinox occurred on Friday March 22 of the year A.D. 622. Persian Calendar for the month of Farvadin year 1390.

            Farvardin [1390]

    Sun  Mon  Tue  Wed  Thu  Fri  Sat
           1    2    3    4    5    6
      7    8    9   10   11   12   13
     14   15   16   17   18   19   20
     21   22   23   24   25   26   27
     28   29   30   31

MONTHS

    +-------+--------------+
    | Order | Persian Name |
    +-------+--------------+
    |  1    | Farvardin    |
    |  2    | Ordibehesht  |
    |  3    | Xordad       | 
    |  4    | Tir          |
    |  5    | Amordad      |
    |  6    | Sahrivar     | 
    |  7    | Mehr         | 
    |  8    | Aban         |
    |  9    | Azar         |
    | 10    | Dey          |
    | 11    | Bahman       |
    | 12    | Esfand       |  
    +-------+--------------+

WEEKDAYS

    +------------------------------------+
    | Number | Gregorian | Persian       |
    +--------+-----------+---------------+
    |    0   | Sunday    | Yekshanbeh    |
    |    1   | Monday    | Doshanbeh     |  
    |    2   | Tuesday   | Seshhanbeh    |
    |    3   | Wednesday | Chaharshanbeh |
    |    4   | Thursday  | Panjshanbeh   |
    |    5   | Friday    | Jomeh         |
    |    6   | Saturday  | Shanbeh       |
    +--------+-----------+---------------+

METHODS

to_gregorian()

Converts Persian date to Gregorian date.

    use Calendar::Persian;

    my $calendar = Calendar::Persian->new();
    my ($yyyy, $mm, $dd) = $calendar->to_gregorian();

from_gregorian()

Converts given Gregorian date to Persian date.

    use Calendar::Persian;

    my $calendar = Calendar::Persian->new();
    my ($yyyy, $mm, $dd) = $calendar->from_gregorian(2011, 3, 22);

is_leap()

Checks if the given year in Persian calendar is a leap year or not. Returns 1 or 0 depending whether it is a leap year or not.

    use Calendar::Persian;

    my $calendar = Calendar::Persian->new();
    my $is_leap_year = $calendar->is_leap(1389);

as_string()

Return Persian date in human readable format.

    use strict; use warnings;
    use Calendar::Persian;

    my $calendar = Calendar::Persian->new(1389, 9, 16);
    print "Persian date is " . $calendar->as_string() . "\n";

dow()

Get day of the week of the given Persian date, starting with sunday (0).

    use strict; use warnings;
    use Calendar::Persian;

    my $calendar = Calendar::Persian->new();
    print "Day of the week; [" . $calendar->dow() . "]\n";

today()

Return today's date is Persian calendar as list in the format yyyy,mm,dd.

    use strict; use warnings;
    use Calendar::Persian;

    my $calendar = Calendar::Persian->new();
    my ($yyyy, $mm, $dd) = $calendar->today();
    print "Year [$yyyy] Month [$mm] Day [$dd]\n";

days_in_month()

Return number of days in the given year and month of Persian calendar.

    use strict; use warnings;
    use Calendar::Persian;

    my $calendar = Calendar::Persian->new(1390, 12, 26);
    print "Days is Esfand 1390:    [" . $calendar->days_in_month()       . "]\n";
    print "Days is Farvardin 1390: [" . $calendar->days_in_month(1390,1) . "]\n";

get_calendar()

Return calendar for given year & month in Persian calendar. It return current month of Persian calendar if no argument is passed in.

    use strict; use warnings;
    use Calendar::Persian;

    my $calendar = Calendar::Persian->new(1390,1,1);
    print $calendar->get_calendar();

    # Print calendar for year 1390 and month 1.
    print $calendar->get_calendar(1390, 1);

debug()

Turn the DEBUG on/off by passing 1/0 respectively.

    use Calendar::Persian;

    my $calendar = Calendar::Persian->new();
    $calendar->debug(1);

AUTHOR

Mohammad S Anwar, <mohammad.anwar at yahoo.com>

BUGS

Please report any bugs/feature requests to bug-calendar-persian at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Calendar-Persian. I will be notified and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc Calendar::Persian

You can also look for information at:

LICENSE AND COPYRIGHT

Copyright 2011 Mohammad S Anwar.

This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.

See http://dev.perl.org/licenses/ for more information.

DISCLAIMER

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.