symbian-qemu-0.9.1-12/python-2.6.1/Doc/library/calendar.rst
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 
       
     2 :mod:`calendar` --- General calendar-related functions
       
     3 ======================================================
       
     4 
       
     5 .. module:: calendar
       
     6    :synopsis: Functions for working with calendars, including some emulation of the Unix cal
       
     7               program.
       
     8 .. sectionauthor:: Drew Csillag <drew_csillag@geocities.com>
       
     9 
       
    10 
       
    11 This module allows you to output calendars like the Unix :program:`cal` program,
       
    12 and provides additional useful functions related to the calendar. By default,
       
    13 these calendars have Monday as the first day of the week, and Sunday as the last
       
    14 (the European convention). Use :func:`setfirstweekday` to set the first day of
       
    15 the week to Sunday (6) or to any other weekday.  Parameters that specify dates
       
    16 are given as integers. For related
       
    17 functionality, see also the :mod:`datetime` and :mod:`time` modules.
       
    18 
       
    19 Most of these functions and classses rely on the :mod:`datetime` module which
       
    20 uses an idealized calendar, the current Gregorian calendar indefinitely extended
       
    21 in both directions.  This matches the definition of the "proleptic Gregorian"
       
    22 calendar in Dershowitz and Reingold's book "Calendrical Calculations", where
       
    23 it's the base calendar for all computations.
       
    24 
       
    25 
       
    26 .. class:: Calendar([firstweekday])
       
    27 
       
    28    Creates a :class:`Calendar` object. *firstweekday* is an integer specifying the
       
    29    first day of the week. ``0`` is Monday (the default), ``6`` is Sunday.
       
    30 
       
    31    A :class:`Calendar` object provides several methods that can be used for
       
    32    preparing the calendar data for formatting. This class doesn't do any formatting
       
    33    itself. This is the job of subclasses.
       
    34 
       
    35    .. versionadded:: 2.5
       
    36 
       
    37    :class:`Calendar` instances have the following methods:
       
    38 
       
    39 
       
    40    .. method:: iterweekdays()
       
    41 
       
    42       Return an iterator for the week day numbers that will be used for one
       
    43       week.  The first value from the iterator will be the same as the value of
       
    44       the :attr:`firstweekday` property.
       
    45 
       
    46 
       
    47    .. method:: itermonthdates(year, month)
       
    48 
       
    49       Return an iterator for the month *month* (1-12) in the year *year*. This
       
    50       iterator will return all days (as :class:`datetime.date` objects) for the
       
    51       month and all days before the start of the month or after the end of the
       
    52       month that are required to get a complete week.
       
    53 
       
    54 
       
    55    .. method:: itermonthdays2(year, month)
       
    56 
       
    57       Return an iterator for the month *month* in the year *year* similar to
       
    58       :meth:`itermonthdates`. Days returned will be tuples consisting of a day
       
    59       number and a week day number.
       
    60 
       
    61 
       
    62    .. method:: itermonthdays(year, month)
       
    63 
       
    64       Return an iterator for the month *month* in the year *year* similar to
       
    65       :meth:`itermonthdates`. Days returned will simply be day numbers.
       
    66 
       
    67 
       
    68    .. method:: monthdatescalendar(year, month)
       
    69 
       
    70       Return a list of the weeks in the month *month* of the *year* as full
       
    71       weeks.  Weeks are lists of seven :class:`datetime.date` objects.
       
    72 
       
    73 
       
    74    .. method:: monthdays2calendar(year, month)
       
    75 
       
    76       Return a list of the weeks in the month *month* of the *year* as full
       
    77       weeks.  Weeks are lists of seven tuples of day numbers and weekday
       
    78       numbers.
       
    79 
       
    80 
       
    81    .. method:: monthdayscalendar(year, month)
       
    82 
       
    83       Return a list of the weeks in the month *month* of the *year* as full
       
    84       weeks.  Weeks are lists of seven day numbers.
       
    85 
       
    86 
       
    87    .. method:: yeardatescalendar(year[, width])
       
    88 
       
    89       Return the data for the specified year ready for formatting. The return
       
    90       value is a list of month rows. Each month row contains up to *width*
       
    91       months (defaulting to 3). Each month contains between 4 and 6 weeks and
       
    92       each week contains 1--7 days. Days are :class:`datetime.date` objects.
       
    93 
       
    94 
       
    95    .. method:: yeardays2calendar(year[, width])
       
    96 
       
    97       Return the data for the specified year ready for formatting (similar to
       
    98       :meth:`yeardatescalendar`). Entries in the week lists are tuples of day
       
    99       numbers and weekday numbers. Day numbers outside this month are zero.
       
   100 
       
   101 
       
   102    .. method:: yeardayscalendar(year[, width])
       
   103 
       
   104       Return the data for the specified year ready for formatting (similar to
       
   105       :meth:`yeardatescalendar`). Entries in the week lists are day numbers. Day
       
   106       numbers outside this month are zero.
       
   107 
       
   108 
       
   109 .. class:: TextCalendar([firstweekday])
       
   110 
       
   111    This class can be used to generate plain text calendars.
       
   112 
       
   113    .. versionadded:: 2.5
       
   114 
       
   115    :class:`TextCalendar` instances have the following methods:
       
   116 
       
   117 
       
   118    .. method:: formatmonth(theyear, themonth[, w[, l]])
       
   119 
       
   120       Return a month's calendar in a multi-line string. If *w* is provided, it
       
   121       specifies the width of the date columns, which are centered. If *l* is
       
   122       given, it specifies the number of lines that each week will use. Depends
       
   123       on the first weekday as specified in the constructor or set by the
       
   124       :meth:`setfirstweekday` method.
       
   125 
       
   126 
       
   127    .. method:: prmonth(theyear, themonth[, w[, l]])
       
   128 
       
   129       Print a month's calendar as returned by :meth:`formatmonth`.
       
   130 
       
   131 
       
   132    .. method:: formatyear(theyear, themonth[, w[, l[, c[, m]]]])
       
   133 
       
   134       Return a *m*-column calendar for an entire year as a multi-line string.
       
   135       Optional parameters *w*, *l*, and *c* are for date column width, lines per
       
   136       week, and number of spaces between month columns, respectively. Depends on
       
   137       the first weekday as specified in the constructor or set by the
       
   138       :meth:`setfirstweekday` method.  The earliest year for which a calendar
       
   139       can be generated is platform-dependent.
       
   140 
       
   141 
       
   142    .. method:: pryear(theyear[, w[, l[, c[, m]]]])
       
   143 
       
   144       Print the calendar for an entire year as returned by :meth:`formatyear`.
       
   145 
       
   146 
       
   147 .. class:: HTMLCalendar([firstweekday])
       
   148 
       
   149    This class can be used to generate HTML calendars.
       
   150 
       
   151    .. versionadded:: 2.5
       
   152 
       
   153    :class:`HTMLCalendar` instances have the following methods:
       
   154 
       
   155 
       
   156    .. method:: formatmonth(theyear, themonth[, withyear])
       
   157 
       
   158       Return a month's calendar as an HTML table. If *withyear* is true the year
       
   159       will be included in the header, otherwise just the month name will be
       
   160       used.
       
   161 
       
   162 
       
   163    .. method:: formatyear(theyear, themonth[, width])
       
   164 
       
   165       Return a year's calendar as an HTML table. *width* (defaulting to 3)
       
   166       specifies the number of months per row.
       
   167 
       
   168 
       
   169    .. method:: formatyearpage(theyear[, width[, css[, encoding]]])
       
   170 
       
   171       Return a year's calendar as a complete HTML page. *width* (defaulting to
       
   172       3) specifies the number of months per row. *css* is the name for the
       
   173       cascading style sheet to be used. :const:`None` can be passed if no style
       
   174       sheet should be used. *encoding* specifies the encoding to be used for the
       
   175       output (defaulting to the system default encoding).
       
   176 
       
   177 
       
   178 .. class:: LocaleTextCalendar([firstweekday[, locale]])
       
   179 
       
   180    This subclass of :class:`TextCalendar` can be passed a locale name in the
       
   181    constructor and will return month and weekday names in the specified
       
   182    locale. If this locale includes an encoding all strings containing month and
       
   183    weekday names will be returned as unicode.
       
   184 
       
   185    .. versionadded:: 2.5
       
   186 
       
   187 
       
   188 .. class:: LocaleHTMLCalendar([firstweekday[, locale]])
       
   189 
       
   190    This subclass of :class:`HTMLCalendar` can be passed a locale name in the
       
   191    constructor and will return month and weekday names in the specified
       
   192    locale. If this locale includes an encoding all strings containing month and
       
   193    weekday names will be returned as unicode.
       
   194 
       
   195    .. versionadded:: 2.5
       
   196 
       
   197 For simple text calendars this module provides the following functions.
       
   198 
       
   199 
       
   200 .. function:: setfirstweekday(weekday)
       
   201 
       
   202    Sets the weekday (``0`` is Monday, ``6`` is Sunday) to start each week. The
       
   203    values :const:`MONDAY`, :const:`TUESDAY`, :const:`WEDNESDAY`, :const:`THURSDAY`,
       
   204    :const:`FRIDAY`, :const:`SATURDAY`, and :const:`SUNDAY` are provided for
       
   205    convenience. For example, to set the first weekday to Sunday::
       
   206 
       
   207       import calendar
       
   208       calendar.setfirstweekday(calendar.SUNDAY)
       
   209 
       
   210    .. versionadded:: 2.0
       
   211 
       
   212 
       
   213 .. function:: firstweekday()
       
   214 
       
   215    Returns the current setting for the weekday to start each week.
       
   216 
       
   217    .. versionadded:: 2.0
       
   218 
       
   219 
       
   220 .. function:: isleap(year)
       
   221 
       
   222    Returns :const:`True` if *year* is a leap year, otherwise :const:`False`.
       
   223 
       
   224 
       
   225 .. function:: leapdays(y1, y2)
       
   226 
       
   227    Returns the number of leap years in the range from *y1* to *y2* (exclusive),
       
   228    where *y1* and *y2* are years.
       
   229 
       
   230    .. versionchanged:: 2.0
       
   231       This function didn't work for ranges spanning a century change in Python
       
   232       1.5.2.
       
   233 
       
   234 
       
   235 .. function:: weekday(year, month, day)
       
   236 
       
   237    Returns the day of the week (``0`` is Monday) for *year* (``1970``--...),
       
   238    *month* (``1``--``12``), *day* (``1``--``31``).
       
   239 
       
   240 
       
   241 .. function:: weekheader(n)
       
   242 
       
   243    Return a header containing abbreviated weekday names. *n* specifies the width in
       
   244    characters for one weekday.
       
   245 
       
   246 
       
   247 .. function:: monthrange(year, month)
       
   248 
       
   249    Returns weekday of first day of the month and number of days in month,  for the
       
   250    specified *year* and *month*.
       
   251 
       
   252 
       
   253 .. function:: monthcalendar(year, month)
       
   254 
       
   255    Returns a matrix representing a month's calendar.  Each row represents a week;
       
   256    days outside of the month a represented by zeros. Each week begins with Monday
       
   257    unless set by :func:`setfirstweekday`.
       
   258 
       
   259 
       
   260 .. function:: prmonth(theyear, themonth[, w[, l]])
       
   261 
       
   262    Prints a month's calendar as returned by :func:`month`.
       
   263 
       
   264 
       
   265 .. function:: month(theyear, themonth[, w[, l]])
       
   266 
       
   267    Returns a month's calendar in a multi-line string using the :meth:`formatmonth`
       
   268    of the :class:`TextCalendar` class.
       
   269 
       
   270    .. versionadded:: 2.0
       
   271 
       
   272 
       
   273 .. function:: prcal(year[, w[, l[c]]])
       
   274 
       
   275    Prints the calendar for an entire year as returned by  :func:`calendar`.
       
   276 
       
   277 
       
   278 .. function:: calendar(year[, w[, l[c]]])
       
   279 
       
   280    Returns a 3-column calendar for an entire year as a multi-line string using the
       
   281    :meth:`formatyear` of the :class:`TextCalendar` class.
       
   282 
       
   283    .. versionadded:: 2.0
       
   284 
       
   285 
       
   286 .. function:: timegm(tuple)
       
   287 
       
   288    An unrelated but handy function that takes a time tuple such as returned by the
       
   289    :func:`gmtime` function in the :mod:`time` module, and returns the corresponding
       
   290    Unix timestamp value, assuming an epoch of 1970, and the POSIX encoding.  In
       
   291    fact, :func:`time.gmtime` and :func:`timegm` are each others' inverse.
       
   292 
       
   293    .. versionadded:: 2.0
       
   294 
       
   295 The :mod:`calendar` module exports the following data attributes:
       
   296 
       
   297 
       
   298 .. data:: day_name
       
   299 
       
   300    An array that represents the days of the week in the current locale.
       
   301 
       
   302 
       
   303 .. data:: day_abbr
       
   304 
       
   305    An array that represents the abbreviated days of the week in the current locale.
       
   306 
       
   307 
       
   308 .. data:: month_name
       
   309 
       
   310    An array that represents the months of the year in the current locale.  This
       
   311    follows normal convention of January being month number 1, so it has a length of
       
   312    13 and  ``month_name[0]`` is the empty string.
       
   313 
       
   314 
       
   315 .. data:: month_abbr
       
   316 
       
   317    An array that represents the abbreviated months of the year in the current
       
   318    locale.  This follows normal convention of January being month number 1, so it
       
   319    has a length of 13 and  ``month_abbr[0]`` is the empty string.
       
   320 
       
   321 
       
   322 .. seealso::
       
   323 
       
   324    Module :mod:`datetime`
       
   325       Object-oriented interface to dates and times with similar functionality to the
       
   326       :mod:`time` module.
       
   327 
       
   328    Module :mod:`time`
       
   329       Low-level time related functions.
       
   330