]> git.saurik.com Git - wxWidgets.git/blame_incremental - docs/latex/wx/datetime.tex
don't assign the returned value in wxMDIParentFrame::OnCreateClient() to any member...
[wxWidgets.git] / docs / latex / wx / datetime.tex
... / ...
CommitLineData
1%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
2%% Name: datetime.tex
3%% Purpose: wxDateTime documentation
4%% Author: Vadim Zeitlin
5%% Modified by:
6%% Created: 07.03.00
7%% RCS-ID: $Id$
8%% Copyright: (c) Vadim Zeitlin
9%% License: wxWindows license
10%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
11
12\section{\class{wxDateTime}}\label{wxdatetime}
13
14wxDateTime class represents an absolute moment in the time.
15
16\wxheading{Types}
17
18The type {\tt wxDateTime\_t} is typedefed as {\tt unsigned short} and is used
19to contain the number of years, hours, minutes, seconds and milliseconds.
20
21\wxheading{Constants}
22
23Global constant {\tt wxDefaultDateTime} and synonym for it {\tt wxInvalidDateTime} are defined. This constant will be different from any valid
24wxDateTime object.
25
26All the following constants are defined inside wxDateTime class (i.e., to refer to
27them you should prepend their names with {\tt wxDateTime::}).
28
29Time zone symbolic names:
30
31\begin{verbatim}
32 enum TZ
33 {
34 // the time in the current time zone
35 Local,
36
37 // zones from GMT (= Greenwhich Mean Time): they're guaranteed to be
38 // consequent numbers, so writing something like `GMT0 + offset' is
39 // safe if abs(offset) <= 12
40
41 // underscore stands for minus
42 GMT_12, GMT_11, GMT_10, GMT_9, GMT_8, GMT_7,
43 GMT_6, GMT_5, GMT_4, GMT_3, GMT_2, GMT_1,
44 GMT0,
45 GMT1, GMT2, GMT3, GMT4, GMT5, GMT6,
46 GMT7, GMT8, GMT9, GMT10, GMT11, GMT12, GMT13,
47 // Note that GMT12 and GMT_12 are not the same: there is a difference
48 // of exactly one day between them
49
50 // some symbolic names for TZ
51
52 // Europe
53 WET = GMT0, // Western Europe Time
54 WEST = GMT1, // Western Europe Summer Time
55 CET = GMT1, // Central Europe Time
56 CEST = GMT2, // Central Europe Summer Time
57 EET = GMT2, // Eastern Europe Time
58 EEST = GMT3, // Eastern Europe Summer Time
59 MSK = GMT3, // Moscow Time
60 MSD = GMT4, // Moscow Summer Time
61
62 // US and Canada
63 AST = GMT_4, // Atlantic Standard Time
64 ADT = GMT_3, // Atlantic Daylight Time
65 EST = GMT_5, // Eastern Standard Time
66 EDT = GMT_4, // Eastern Daylight Saving Time
67 CST = GMT_6, // Central Standard Time
68 CDT = GMT_5, // Central Daylight Saving Time
69 MST = GMT_7, // Mountain Standard Time
70 MDT = GMT_6, // Mountain Daylight Saving Time
71 PST = GMT_8, // Pacific Standard Time
72 PDT = GMT_7, // Pacific Daylight Saving Time
73 HST = GMT_10, // Hawaiian Standard Time
74 AKST = GMT_9, // Alaska Standard Time
75 AKDT = GMT_8, // Alaska Daylight Saving Time
76
77 // Australia
78
79 A_WST = GMT8, // Western Standard Time
80 A_CST = GMT13 + 1, // Central Standard Time (+9.5)
81 A_EST = GMT10, // Eastern Standard Time
82 A_ESST = GMT11, // Eastern Summer Time
83
84 // New Zealand
85 NZST = GMT12, // Standard Time
86 NZDT = GMT13, // Daylight Saving Time
87
88 // Universal Coordinated Time = the new and politically correct name
89 // for GMT
90 UTC = GMT0
91 };
92\end{verbatim}
93
94Month names: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec and
95Inv\_Month for an invalid.month value are the values of {\tt wxDateTime::Month}
96enum.
97
98Likewise, Sun, Mon, Tue, Wed, Thu, Fri, Sat, and Inv\_WeekDay are the values in
99{\tt wxDateTime::WeekDay} enum.
100
101Finally, Inv\_Year is defined to be an invalid value for year parameter.
102
103\helpref{GetMonthName()}{wxdatetimegetmonthname} and
104\helpref{GetWeekDayName}{wxdatetimegetweekdayname} functions use the following
105flags:
106
107\begin{verbatim}
108 enum NameFlags
109 {
110 Name_Full = 0x01, // return full name
111 Name_Abbr = 0x02 // return abbreviated name
112 };
113\end{verbatim}
114
115Several functions accept an extra parameter specifying the calendar to use
116(although most of them only support now the Gregorian calendar). This
117parameters is one of the following values:
118
119\begin{verbatim}
120 enum Calendar
121 {
122 Gregorian, // calendar currently in use in Western countries
123 Julian // calendar in use since -45 until the 1582 (or later)
124 };
125\end{verbatim}
126
127Date calculations often depend on the country and wxDateTime allows to set the
128country whose conventions should be used using
129\helpref{SetCountry}{wxdatetimesetcountry}. It takes one of the following
130values as parameter:
131
132\begin{verbatim}
133 enum Country
134 {
135 Country_Unknown, // no special information for this country
136 Country_Default, // set the default country with SetCountry() method
137 // or use the default country with any other
138
139 Country_WesternEurope_Start,
140 Country_EEC = Country_WesternEurope_Start,
141 France,
142 Germany,
143 UK,
144 Country_WesternEurope_End = UK,
145
146 Russia,
147
148 USA
149 };
150\end{verbatim}
151
152Different parts of the world use different conventions for the week start.
153In some countries, the week starts on Sunday, while in others -- on Monday.
154The ISO standard doesn't address this issue, so we support both conventions in
155the functions whose result depends on it (\helpref{GetWeekOfYear}{wxdatetimegetweekofyear} and
156\helpref{GetWeekOfMonth}{wxdatetimegetweekofmonth}).
157
158The desired behvaiour may be specified by giving one of the following
159constants as argument to these functions:
160
161\begin{verbatim}
162 enum WeekFlags
163 {
164 Default_First, // Sunday_First for US, Monday_First for the rest
165 Monday_First, // week starts with a Monday
166 Sunday_First // week starts with a Sunday
167 };
168\end{verbatim}
169
170\wxheading{Derived from}
171
172No base class
173
174\wxheading{Include files}
175
176<wx/datetime.h>
177
178\wxheading{Library}
179
180\helpref{wxBase}{librarieslist}
181
182\wxheading{See also}
183
184\helpref{Date classes overview}{wxdatetimeoverview},\rtfsp
185\helpref{wxTimeSpan}{wxtimespan},\rtfsp
186\helpref{wxDateSpan}{wxdatespan},\rtfsp
187\helpref{wxCalendarCtrl}{wxcalendarctrl}
188
189\latexignore{\rtfignore{\wxheading{Function groups}}}
190
191
192\membersection{Static functions}\label{datetimestaticfunctions}
193
194For convenience, all static functions are collected here. These functions
195either set or return the static variables of wxDateSpan (the country), return
196the current moment, year, month or number of days in it, or do some general
197calendar-related actions.
198
199Please note that although several function accept an extra {\it Calendar}
200parameter, it is currently ignored as only the Gregorian calendar is
201supported. Future versions will support other calendars.
202
203\pythonnote{These methods are standalone functions named
204{\tt wxDateTime\_<StaticMethodName>} in wxPython.}
205
206\helpref{SetCountry}{wxdatetimesetcountry}\\
207\helpref{GetCountry}{wxdatetimegetcountry}\\
208\helpref{IsWestEuropeanCountry}{wxdatetimeiswesteuropeancountry}\\
209\helpref{GetCurrentYear}{wxdatetimegetcurrentyear}\\
210\helpref{ConvertYearToBC}{wxdatetimeconvertyeartobc}\\
211\helpref{GetCurrentMonth}{wxdatetimegetcurrentmonth}\\
212\helpref{IsLeapYear}{wxdatetimeisleapyear}\\
213\helpref{GetCentury}{wxdatetimegetcenturystatic}\\
214\helpref{GetNumberOfDays}{wxdatetimegetnumberofdays}\\
215\helpref{GetNumberOfDays}{wxdatetimegetnumberofdays}\\
216\helpref{GetMonthName}{wxdatetimegetmonthname}\\
217\helpref{GetWeekDayName}{wxdatetimegetweekdayname}\\
218\helpref{GetAmPmStrings}{wxdatetimegetampmstrings}\\
219\helpref{IsDSTApplicable}{wxdatetimeisdstapplicable}\\
220\helpref{GetBeginDST}{wxdatetimegetbegindst}\\
221\helpref{GetEndDST}{wxdatetimegetenddst}\\
222\helpref{Now}{wxdatetimenow}\\
223\helpref{UNow}{wxdatetimeunow}\\
224\helpref{Today}{wxdatetimetoday}
225
226
227\membersection{Constructors, assignment operators and setters}\label{datetimeconstructors}
228
229Constructors and various {\tt Set()} methods are collected here. If you
230construct a date object from separate values for day, month and year, you
231should use \helpref{IsValid}{wxdatetimeisvalid} method to check that the
232values were correct as constructors can not return an error code.
233
234\helpref{wxDateTime()}{wxdatetimewxdatetimedef}\\
235\helpref{wxDateTime(time\_t)}{wxdatetimewxdatetimetimet}\\
236\helpref{wxDateTime(struct tm)}{wxdatetimewxdatetimetm}\\
237%\helpref{wxDateTime(struct Tm)}{wxdatetimewxdatetimetm} - Tm not documented yet\\
238\helpref{wxDateTime(double jdn)}{wxdatetimewxdatetimejdn}\\
239\helpref{wxDateTime(h, m, s, ms)}{wxdatetimewxdatetimetime}\\
240\helpref{wxDateTime(day, mon, year, h, m, s, ms)}{wxdatetimewxdatetimedate}\\
241\helpref{SetToCurrent}{wxdatetimesettocurrent}\\
242\helpref{Set(time\_t)}{wxdatetimesettimet}\\
243\helpref{Set(struct tm)}{wxdatetimesettm}\\
244%\helpref{Set(struct Tm)}{wxdatetimesettm} - Tm not documented yet\\
245\helpref{Set(double jdn)}{wxdatetimesetjdn}\\
246\helpref{Set(h, m, s, ms)}{wxdatetimesettime}\\
247\helpref{Set(day, mon, year, h, m, s, ms)}{wxdatetimesetdate}\\
248\helpref{SetFromDOS(unsigned long ddt)}{wxdatetimesetfromdos}\\
249\helpref{ResetTime}{wxdatetimeresettime}\\
250\helpref{SetYear}{wxdatetimesetyear}\\
251\helpref{SetMonth}{wxdatetimesetmonth}\\
252\helpref{SetDay}{wxdatetimesetdate}\\
253\helpref{SetHour}{wxdatetimesethour}\\
254\helpref{SetMinute}{wxdatetimesetminute}\\
255\helpref{SetSecond}{wxdatetimesetsecond}\\
256\helpref{SetMillisecond}{wxdatetimesetmillisecond}\\
257\helpref{operator$=$(time\_t)}{wxdatetimeoperatoreqtimet}\\
258\helpref{operator$=$(struct tm)}{wxdatetimeoperatoreqtm}\rtfsp
259
260
261\membersection{Accessors}\label{datetimeaccessors}
262
263Here are the trivial accessors. Other functions, which might have to perform
264some more complicated calculations to find the answer are under the
265\helpref{Calendar calculations}{datetimecalculations} section.
266
267\helpref{IsValid}{wxdatetimeisvalid}\\
268\helpref{GetTicks}{wxdatetimegetticks}\\
269\helpref{GetCentury}{wxdatetimegetcentury}\\
270\helpref{GetYear}{wxdatetimegetyear}\\
271\helpref{GetMonth}{wxdatetimegetmonth}\\
272\helpref{GetDay}{wxdatetimegetday}\\
273\helpref{GetWeekDay}{wxdatetimegetweekday}\\
274\helpref{GetHour}{wxdatetimegethour}\\
275\helpref{GetMinute}{wxdatetimegetminute}\\
276\helpref{GetSecond}{wxdatetimegetsecond}\\
277\helpref{GetMillisecond}{wxdatetimegetmillisecond}\\
278\helpref{GetDayOfYear}{wxdatetimegetdayofyear}\\
279\helpref{GetWeekOfYear}{wxdatetimegetweekofyear}\\
280\helpref{GetWeekOfMonth}{wxdatetimegetweekofmonth}\\
281\helpref{GetYearDay}{wxdatetimegetyearday}\\
282\helpref{IsWorkDay}{wxdatetimeisworkday}\\
283\helpref{IsGregorianDate}{wxdatetimeisgregoriandate}\\
284\helpref{GetAsDOS}{wxdatetimegetasdos}
285
286
287\membersection{Date comparison}\label{datecomparison}
288
289There are several function to allow date comparison. To supplement them, a few
290global operators $>$, $<$ etc taking wxDateTime are defined.
291
292\helpref{IsEqualTo}{wxdatetimeisequalto}\\
293\helpref{IsEarlierThan}{wxdatetimeisearlierthan}\\
294\helpref{IsLaterThan}{wxdatetimeislaterthan}\\
295\helpref{IsStrictlyBetween}{wxdatetimeisstrictlybetween}\\
296\helpref{IsBetween}{wxdatetimeisbetween}\\
297\helpref{IsSameDate}{wxdatetimeissamedate}\\
298\helpref{IsSameTime}{wxdatetimeissametime}\\
299\helpref{IsEqualUpTo}{wxdatetimeisequalupto}
300
301
302\membersection{Date arithmetics}\label{datearithmetics}
303
304These functions carry out \helpref{arithmetics}{tdatearithm} on the wxDateTime
305objects. As explained in the overview, either wxTimeSpan or wxDateSpan may be
306added to wxDateTime, hence all functions are overloaded to accept both
307arguments.
308
309Also, both {\tt Add()} and {\tt Subtract()} have both const and non-const
310version. The first one returns a new object which represents the
311sum/difference of the original one with the argument while the second form
312modifies the object to which it is applied. The operators $-=$ and $+=$ are
313defined to be equivalent to the second forms of these functions.
314
315\helpref{Add(wxTimeSpan)}{wxdatetimeaddts}\\
316\helpref{Add(wxDateSpan)}{wxdatetimeaddds}\\
317\helpref{Subtract(wxTimeSpan)}{wxdatetimesubtractts}\\
318\helpref{Subtract(wxDateSpan)}{wxdatetimesubtractds}\\
319\helpref{Subtract(wxDateTime)}{wxdatetimesubtractdt}\\
320\helpref{oparator$+=$(wxTimeSpan)}{wxdatetimeaddts}\\
321\helpref{oparator$+=$(wxDateSpan)}{wxdatetimeaddds}\\
322\helpref{oparator$-=$(wxTimeSpan)}{wxdatetimesubtractts}\\
323\helpref{oparator$-=$(wxDateSpan)}{wxdatetimesubtractds}
324
325
326\membersection{Parsing and formatting dates}\label{datetimeparsing}
327
328These functions convert wxDateTime objects to and from text. The
329conversions to text are mostly trivial: you can either do it using the default
330date and time representations for the current locale (
331\helpref{FormatDate}{wxdatetimeformatdate} and
332\helpref{FormatTime}{wxdatetimeformattime}), using the international standard
333representation defined by ISO 8601 (
334\helpref{FormatISODate}{wxdatetimeformatisodate},
335\helpref{FormatISOTime}{wxdatetimeformatisotime} and
336\helpref{FormatISOCombined}{wxdatetimeformatisocombined}) or by specifying any
337format at all and using \helpref{Format}{wxdatetimeformat} directly.
338
339The conversions from text are more interesting, as there are much more
340possibilities to care about. The simplest cases can be taken care of with
341\helpref{ParseFormat}{wxdatetimeparseformat} which can parse any date in the
342given (rigid) format. \helpref{ParseRfc822Date}{wxdatetimeparserfc822date} is
343another function for parsing dates in predefined format -- the one of RFC 822
344which (still...) defines the format of email messages on the Internet. This
345format can not be described with {\tt strptime(3)}-like format strings used by
346\helpref{Format}{wxdatetimeformat}, hence the need for a separate function.
347
348But the most interesting functions are
349\helpref{ParseTime}{wxdatetimeparsetime},
350\helpref{ParseDate}{wxdatetimeparsedate} and
351\helpref{ParseDateTime}{wxdatetimeparsedatetime}. They try to parse the date
352ans time (or only one of them) in `free' format, i.e. allow them to be
353specified in any of possible ways. These functions will usually be used to
354parse the (interactive) user input which is not bound to be in any predefined
355format. As an example, \helpref{ParseDateTime}{wxdatetimeparsedatetime} can
356parse the strings such as {\tt "tomorrow"}, {\tt "March first"} and even
357{\tt "next Sunday"}.
358
359Finally notice that each of the parsing functions is available in several
360overloads: if the input string is a narrow (\texttt{char *}) string, then a
361narrow pointer is returned. If the input string is a wide string, a wide char
362pointer is returned. Finally, if the input parameter is a wxString, a narrow
363char pointer is also returned for backwards compatibility but there is also an
364additional argument of wxString::const\_iterator type in which, if it is not
365\NULL, an iterator pointing to the end of the scanned string part is returned.
366
367\helpref{ParseFormat}{wxdatetimeparseformat}\\
368\helpref{ParseDateTime}{wxdatetimeparsedatetime}\\
369\helpref{ParseDate}{wxdatetimeparsedate}\\
370\helpref{ParseTime}{wxdatetimeparsetime}\\
371\helpref{ParseISODate}{wxdatetimeparseisodate}\\
372\helpref{ParseISOTime}{wxdatetimeparseisotime}\\
373\helpref{ParseISOCombined}{wxdatetimeparseisocombined}\\
374\helpref{ParseRfc822Date}{wxdatetimeparserfc822date}\\
375\helpref{Format}{wxdatetimeformat}\\
376\helpref{FormatDate}{wxdatetimeformatdate}\\
377\helpref{FormatTime}{wxdatetimeformattime}\\
378\helpref{FormatISOCombined}{wxdatetimeformatisocombined}\\
379\helpref{FormatISODate}{wxdatetimeformatisodate}\\
380\helpref{FormatISOTime}{wxdatetimeformatisotime}
381
382
383\membersection{Calendar calculations}\label{datetimecalculations}
384
385The functions in this section perform the basic calendar calculations, mostly
386related to the week days. They allow to find the given week day in the
387week with given number (either in the month or in the year) and so on.
388
389All (non-const) functions in this section don't modify the time part of the
390wxDateTime -- they only work with the date part of it.
391
392\helpref{SetToWeekDayInSameWeek}{wxdatetimesettoweekdayinsameweek}\\
393\helpref{GetWeekDayInSameWeek}{wxdatetimegetweekdayinsameweek}\\
394\helpref{SetToNextWeekDay}{wxdatetimesettonextweekday}\\
395\helpref{GetNextWeekDay}{wxdatetimegetnextweekday}\\
396\helpref{SetToPrevWeekDay}{wxdatetimesettoprevweekday}\\
397\helpref{GetPrevWeekDay}{wxdatetimegetprevweekday}\\
398\helpref{SetToWeekDay}{wxdatetimesettoweekday}\\
399\helpref{GetWeekDay}{wxdatetimegetweekday2}\\
400\helpref{SetToLastWeekDay}{wxdatetimesettolastweekday}\\
401\helpref{GetLastWeekDay}{wxdatetimegetlastweekday}\\
402\helpref{SetToWeekOfYear}{wxdatetimesettoweekofyear}\\
403\helpref{SetToLastMonthDay}{wxdatetimesettolastmonthday}\\
404\helpref{GetLastMonthDay}{wxdatetimegetlastmonthday}\\
405\helpref{SetToYearDay}{wxdatetimesettoyearday}\\
406\helpref{GetYearDay}{wxdatetimegetyearday}
407
408
409\membersection{Astronomical/historical functions}\label{astronomyhistoryfunctions}
410
411Some degree of support for the date units used in astronomy and/or history is
412provided. You can construct a wxDateTime object from a
413\helpref{JDN}{wxdatetimesetjdn} and you may also get its JDN,
414\helpref{MJD}{wxdatetimegetmodifiedjuliandaynumber} or
415\helpref{Rata Die number}{wxdatetimegetratadie} from it.
416
417\helpref{wxDateTime(double jdn)}{wxdatetimewxdatetimejdn}\\
418\helpref{Set(double jdn)}{wxdatetimesetjdn}\\
419\helpref{GetJulianDayNumber}{wxdatetimegetjuliandaynumber}\\
420\helpref{GetJDN}{wxdatetimegetjdn}\\
421\helpref{GetModifiedJulianDayNumber}{wxdatetimegetmodifiedjuliandaynumber}\\
422\helpref{GetMJD}{wxdatetimegetmjd}\\
423\helpref{GetRataDie}{wxdatetimegetratadie}
424
425
426\membersection{Time zone and DST support}\label{datetimedstzone}
427
428Please see the \helpref{time zone overview}{tdatetimezones} for more
429information about time zones. Normally, these functions should be rarely used.
430
431\helpref{FromTimezone}{wxdatetimefromtimezone}\\
432\helpref{ToTimezone}{wxdatetimetotimezone}\\
433\helpref{MakeTimezone}{wxdatetimemaketimezone}\\
434\helpref{MakeFromTimezone}{wxdatetimemakefromtimezone}\\
435\helpref{ToUTC}{wxdatetimetoutc}\\
436\helpref{MakeUTC}{wxdatetimemakeutc}\\
437\helpref{GetBeginDST}{wxdatetimegetbegindst}\\
438\helpref{GetEndDST}{wxdatetimegetenddst}\\
439\helpref{IsDST}{wxdatetimeisdst}
440
441\helponly{\insertatlevel{2}{
442
443\wxheading{Members}
444
445}}
446
447%%%%%%%%%%%%%%%%%%%%%%%%%%% static functions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
448
449
450\membersection{wxDateTime::ConvertYearToBC}\label{wxdatetimeconvertyeartobc}
451
452\func{static int}{ConvertYearToBC}{\param{int }{year}}
453
454Converts the year in absolute notation (i.e. a number which can be negative,
455positive or zero) to the year in BC/AD notation. For the positive years,
456nothing is done, but the year 0 is year 1 BC and so for other years there is a
457difference of 1.
458
459This function should be used like this:
460
461\begin{verbatim}
462 wxDateTime dt(...);
463 int y = dt.GetYear();
464 printf("The year is %d%s", wxDateTime::ConvertYearToBC(y), y > 0 ? "AD" : "BC");
465\end{verbatim}
466
467
468\membersection{wxDateTime::GetAmPmStrings}\label{wxdatetimegetampmstrings}
469
470\func{static void}{GetAmPmStrings}{\param{wxString *}{am}, \param{wxString *}{pm}}
471
472Returns the translations of the strings {\tt AM} and {\tt PM} used for time
473formatting for the current locale. Either of the pointers may be {\tt NULL} if
474the corresponding value is not needed.
475
476
477\membersection{wxDateTime::GetBeginDST}\label{wxdatetimegetbegindst}
478
479\func{static wxDateTime}{GetBeginDST}{\param{int }{year = Inv\_Year}, \param{Country }{country = Country\_Default}}
480
481Get the beginning of DST for the given country in the given year (current one
482by default). This function suffers from limitations described in
483\helpref{DST overview}{tdatedst}.
484
485\wxheading{See also}
486
487\helpref{GetEndDST}{wxdatetimegetenddst}
488
489
490\membersection{wxDateTime::GetCountry}\label{wxdatetimegetcountry}
491
492\func{static Country}{GetCountry}{\void}
493
494Returns the current default country. The default country is used for DST
495calculations, for example.
496
497\wxheading{See also}
498
499\helpref{SetCountry}{wxdatetimesetcountry}
500
501
502\membersection{wxDateTime::GetCurrentYear}\label{wxdatetimegetcurrentyear}
503
504\func{static int}{GetCurrentYear}{\param{Calendar }{cal = Gregorian}}
505
506Get the current year in given calendar (only Gregorian is currently supported).
507
508
509\membersection{wxDateTime::GetCurrentMonth}\label{wxdatetimegetcurrentmonth}
510
511\func{static Month}{GetCurrentMonth}{\param{Calendar }{cal = Gregorian}}
512
513Get the current month in given calendar (only Gregorian is currently supported).
514
515
516\membersection{wxDateTime::GetCentury}\label{wxdatetimegetcenturystatic}
517
518\func{static int}{GetCentury}{\param{int }{year}}
519
520Get the current century, i.e. first two digits of the year, in given calendar
521(only Gregorian is currently supported).
522
523
524\membersection{wxDateTime::GetEndDST}\label{wxdatetimegetenddst}
525
526\func{static wxDateTime}{GetEndDST}{\param{int }{year = Inv\_Year}, \param{Country }{country = Country\_Default}}
527
528Returns the end of DST for the given country in the given year (current one by
529default).
530
531\wxheading{See also}
532
533\helpref{GetBeginDST}{wxdatetimegetbegindst}
534
535
536\membersection{wxDateTime::GetMonthName}\label{wxdatetimegetmonthname}
537
538\func{static wxString}{GetMonthName}{\param{Month }{month}, \param{NameFlags }{flags = Name\_Full}}
539
540Gets the full (default) or abbreviated (specify {\tt Name\_Abbr} name of the
541given month.
542
543\wxheading{See also}
544
545\helpref{GetWeekDayName}{wxdatetimegetweekdayname}
546
547
548\membersection{wxDateTime::GetNumberOfDays}\label{wxdatetimegetnumberofdays}
549
550\func{static wxDateTime\_t}{GetNumberOfDays}{\param{int }{year}, \param{Calendar }{cal = Gregorian}}
551
552\func{static wxDateTime\_t}{GetNumberOfDays}{\param{Month }{month}, \param{int }{year = Inv\_Year}, \param{Calendar }{cal = Gregorian}}
553
554Returns the number of days in the given year or in the given month of the
555year.
556
557The only supported value for {\it cal} parameter is currently {\tt Gregorian}.
558
559\pythonnote{These two methods are named {\tt GetNumberOfDaysInYear}
560and {\tt GetNumberOfDaysInMonth} in wxPython.}
561
562
563\membersection{wxDateTime::GetTimeNow}\label{wxdatetimegettimenow}
564
565\func{static time\_t}{GetTimeNow}{\void}
566
567Returns the current time.
568
569
570\membersection{wxDateTime::GetTmNow}\label{wxdatetimegettmnow}
571
572\func{static struct tm *}{GetTmNow}{\param{struct tm *}{tm}}
573
574Returns the current time broken down, uses the buffer whose adress is
575passed to the function via {\it tm} to store the result.
576
577\membersection{wxDateTime::GetTmNow}
578
579\func{static struct tm *}{GetTmNow}{\void}
580
581Returns the current time broken down. Note that this function returns a
582pointer to a static buffer that's reused by calls to this function and
583certain C library functions (e.g. localtime). If there is any chance your
584code might be used in a multi-threaded application, you really should use
585the flavour of function \helpref{wxDateTime::GetTmNow}{wxdatetimegettmnow}
586taking a parameter.
587
588\membersection{wxDateTime::GetWeekDayName}\label{wxdatetimegetweekdayname}
589
590\func{static wxString}{GetWeekDayName}{\param{WeekDay }{weekday}, \param{NameFlags }{flags = Name\_Full}}
591
592Gets the full (default) or abbreviated (specify {\tt Name\_Abbr} name of the
593given week day.
594
595\wxheading{See also}
596
597\helpref{GetMonthName}{wxdatetimegetmonthname}
598
599
600\membersection{wxDateTime::IsLeapYear}\label{wxdatetimeisleapyear}
601
602\func{static bool}{IsLeapYear}{\param{int }{year = Inv\_Year}, \param{Calendar }{cal = Gregorian}}
603
604Returns {\tt true} if the {\it year} is a leap one in the specified calendar.
605
606This functions supports Gregorian and Julian calendars.
607
608
609\membersection{wxDateTime::IsWestEuropeanCountry}\label{wxdatetimeiswesteuropeancountry}
610
611\func{static bool}{IsWestEuropeanCountry}{\param{Country }{country = Country\_Default}}
612
613This function returns {\tt true} if the specified (or default) country is one
614of Western European ones. It is used internally by wxDateTime to determine the
615DST convention and date and time formatting rules.
616
617
618\membersection{wxDateTime::IsDSTApplicable}\label{wxdatetimeisdstapplicable}
619
620\func{static bool}{IsDSTApplicable}{\param{int }{year = Inv\_Year}, \param{Country }{country = Country\_Default}}
621
622Returns {\tt true} if DST was used n the given year (the current one by
623default) in the given country.
624
625
626\membersection{wxDateTime::Now}\label{wxdatetimenow}
627
628\func{static wxDateTime}{Now}{\void}
629
630Returns the object corresponding to the current time.
631
632Example:
633
634\begin{verbatim}
635 wxDateTime now = wxDateTime::Now();
636 printf("Current time in Paris:\t%s\n", now.Format("%c", wxDateTime::CET).c_str());
637\end{verbatim}
638
639Note that this function is accurate up to second:
640\helpref{wxDateTime::UNow}{wxdatetimeunow} should be used for better precision
641(but it is less efficient and might not be available on all platforms).
642
643\wxheading{See also}
644
645\helpref{Today}{wxdatetimetoday}
646
647
648\membersection{wxDateTime::SetCountry}\label{wxdatetimesetcountry}
649
650\func{static void}{SetCountry}{\param{Country }{country}}
651
652Sets the country to use by default. This setting influences the DST
653calculations, date formatting and other things.
654
655The possible values for {\it country} parameter are enumerated in
656\helpref{wxDateTime constants section}{wxdatetime}.
657
658\wxheading{See also}
659
660\helpref{GetCountry}{wxdatetimegetcountry}
661
662
663\membersection{wxDateTime::Today}\label{wxdatetimetoday}
664
665\func{static wxDateTime}{Today}{\void}
666
667Returns the object corresponding to the midnight of the current day (i.e. the
668same as \helpref{Now()}{wxdatetimenow}, but the time part is set to $0$).
669
670\wxheading{See also}
671
672\helpref{Now}{wxdatetimenow}
673
674
675\membersection{wxDateTime::UNow}\label{wxdatetimeunow}
676
677\func{static wxDateTime}{UNow}{\void}
678
679Returns the object corresponding to the current time including the
680milliseconds if a function to get time with such precision is available on the
681current platform (supported under most Unices and Win32).
682
683\wxheading{See also}
684
685\helpref{Now}{wxdatetimenow}
686
687%%%%%%%%%%%%%%%%%%%%%%%%%%% constructors &c %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
688
689
690\membersection{wxDateTime::wxDateTime}\label{wxdatetimewxdatetimedef}
691
692\func{}{wxDateTime}{\void}
693
694Default constructor. Use one of {\tt Set()} functions to initialize the object
695later.
696
697
698\membersection{wxDateTime::wxDateTime}\label{wxdatetimewxdatetimetimet}
699
700\func{wxDateTime\&}{wxDateTime}{\param{time\_t }{timet}}
701
702Same as \helpref{Set}{wxdatetimewxdatetimetimet}.
703
704\pythonnote{This constructor is named {\tt wxDateTimeFromTimeT} in wxPython.}
705
706
707\membersection{wxDateTime::wxDateTime}\label{wxdatetimewxdatetimetm}
708
709\func{wxDateTime\&}{wxDateTime}{\param{const struct tm\& }{tm}}
710
711Same as \helpref{Set}{wxdatetimewxdatetimetm}
712
713\pythonnote{Unsupported.}
714
715
716\membersection{wxDateTime::wxDateTime}\label{wxdatetimewxdatetimejdn}
717
718\func{wxDateTime\&}{wxDateTime}{\param{double }{jdn}}
719
720Same as \helpref{Set}{wxdatetimewxdatetimejdn}
721
722\pythonnote{This constructor is named {\tt wxDateTimeFromJDN} in wxPython.}
723
724
725\membersection{wxDateTime::wxDateTime}\label{wxdatetimewxdatetimetime}
726
727\func{wxDateTime\&}{wxDateTime}{\param{wxDateTime\_t }{hour}, \param{wxDateTime\_t }{minute = 0}, \param{wxDateTime\_t }{second = 0}, \param{wxDateTime\_t }{millisec = 0}}
728
729Same as \helpref{Set}{wxdatetimewxdatetimetime}
730
731\pythonnote{This constructor is named {\tt wxDateTimeFromHMS} in wxPython.}
732
733
734\membersection{wxDateTime::wxDateTime}\label{wxdatetimewxdatetimedate}
735
736\func{wxDateTime\&}{wxDateTime}{\param{wxDateTime\_t }{day}, \param{Month }{month = Inv\_Month}, \param{int}{ Inv\_Year},
737\param{wxDateTime\_t }{hour = 0}, \param{wxDateTime\_t }{minute = 0}, \param{wxDateTime\_t }{second = 0}, \param{wxDateTime\_t }{millisec = 0}}
738
739Same as \helpref{Set}{wxdatetimesetdate}
740
741\pythonnote{This constructor is named {\tt wxDateTimeFromDMY} in wxPython.}
742
743
744\membersection{wxDateTime::SetToCurrent}\label{wxdatetimesettocurrent}
745
746\func{wxDateTime\&}{SetToCurrent}{\void}
747
748Sets the date and time of to the current values. Same as assigning the result
749of \helpref{Now()}{wxdatetimenow} to this object.
750
751
752\membersection{wxDateTime::Set}\label{wxdatetimesettimet}
753
754\func{wxDateTime\&}{Set}{\param{time\_t }{timet}}
755
756Constructs the object from {\it timet} value holding the number of seconds
757since Jan 1, 1970.
758
759\pythonnote{This method is named {\tt SetTimeT} in wxPython.}
760
761
762\membersection{wxDateTime::Set}\label{wxdatetimesettm}
763
764\func{wxDateTime\&}{Set}{\param{const struct tm\& }{tm}}
765
766Sets the date and time from the broken down representation in the standard
767{\tt tm} structure.
768
769\pythonnote{Unsupported.}
770
771
772\membersection{wxDateTime::Set}\label{wxdatetimesetjdn}
773
774\func{wxDateTime\&}{Set}{\param{double }{jdn}}
775
776Sets the date from the so-called {\it Julian Day Number}.
777
778By definition, the Julian Day Number, usually abbreviated as JDN, of a
779particular instant is the fractional number of days since 12 hours Universal
780Coordinated Time (Greenwich mean noon) on January 1 of the year -4712 in the
781Julian proleptic calendar.
782
783\pythonnote{This method is named {\tt SetJDN} in wxPython.}
784
785
786\membersection{wxDateTime::Set}\label{wxdatetimesettime}
787
788\func{wxDateTime\&}{Set}{\param{wxDateTime\_t }{hour}, \param{wxDateTime\_t }{minute = 0}, \param{wxDateTime\_t }{second = 0}, \param{wxDateTime\_t }{millisec = 0}}
789
790Sets the date to be equal to \helpref{Today}{wxdatetimetoday} and the time
791from supplied parameters.
792
793\pythonnote{This method is named {\tt SetHMS} in wxPython.}
794
795
796\membersection{wxDateTime::Set}\label{wxdatetimesetdate}
797
798\func{wxDateTime\&}{Set}{\param{wxDateTime\_t }{day}, \param{Month }{month = Inv\_Month}, \param{int }{year = Inv\_Year}, \param{wxDateTime\_t }{hour = 0}, \param{wxDateTime\_t }{minute = 0}, \param{wxDateTime\_t }{second = 0}, \param{wxDateTime\_t }{millisec = 0}}
799
800Sets the date and time from the parameters.
801
802
803\membersection{wxDateTime::ResetTime}\label{wxdatetimeresettime}
804
805\func{wxDateTime\&}{ResetTime}{\void}
806
807Reset time to midnight (00:00:00) without changing the date.
808
809
810\membersection{wxDateTime::SetYear}\label{wxdatetimesetyear}
811
812\func{wxDateTime\&}{SetYear}{\param{int }{year}}
813
814Sets the year without changing other date components.
815
816
817\membersection{wxDateTime::SetMonth}\label{wxdatetimesetmonth}
818
819\func{wxDateTime\&}{SetMonth}{\param{Month }{month}}
820
821Sets the month without changing other date components.
822
823
824\membersection{wxDateTime::SetDay}\label{wxdatetimesetday}
825
826\func{wxDateTime\&}{SetDay}{\param{wxDateTime\_t }{day}}
827
828Sets the day without changing other date components.
829
830
831\membersection{wxDateTime::SetHour}\label{wxdatetimesethour}
832
833\func{wxDateTime\&}{SetHour}{\param{wxDateTime\_t }{hour}}
834
835Sets the hour without changing other date components.
836
837
838\membersection{wxDateTime::SetMinute}\label{wxdatetimesetminute}
839
840\func{wxDateTime\&}{SetMinute}{\param{wxDateTime\_t }{minute}}
841
842Sets the minute without changing other date components.
843
844
845\membersection{wxDateTime::SetSecond}\label{wxdatetimesetsecond}
846
847\func{wxDateTime\&}{SetSecond}{\param{wxDateTime\_t }{second}}
848
849Sets the second without changing other date components.
850
851
852\membersection{wxDateTime::SetMillisecond}\label{wxdatetimesetmillisecond}
853
854\func{wxDateTime\&}{SetMillisecond}{\param{wxDateTime\_t }{millisecond}}
855
856Sets the millisecond without changing other date components.
857
858
859\membersection{wxDateTime::operator$=$}\label{wxdatetimeoperatoreqtimet}
860
861\func{wxDateTime\&}{operator}{\param{time\_t }{timet}}
862
863Same as \helpref{Set}{wxdatetimesettimet}.
864
865
866\membersection{wxDateTime::operator$=$}\label{wxdatetimeoperatoreqtm}
867
868\func{wxDateTime\&}{operator}{\param{const struct tm\& }{tm}}
869
870Same as \helpref{Set}{wxdatetimesettm}.
871
872%%%%%%%%%%%%%%%%%%%%%%%%%%% accessors %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
873
874
875\membersection{wxDateTime::IsValid}\label{wxdatetimeisvalid}
876
877\constfunc{bool}{IsValid}{\void}
878
879Returns {\tt true} if the object represents a valid time moment.
880
881
882\membersection{wxDateTime::GetDateOnly}\label{wxdatetimegetdateonly}
883
884\constfunc{wxDateTime}{GetDateOnly}{\void}
885
886Returns the object having the same date component as this one but time of
88700:00:00.
888
889\newsince{2.8.2}
890
891\wxheading{See also}
892
893\helpref{ResetTime}{wxdatetimeresettime}
894
895
896\membersection{wxDateTime::GetTm}\label{wxdatetimegettm}
897
898\constfunc{Tm}{GetTm}{\param{const TimeZone\& }{tz = Local}}
899
900Returns broken down representation of the date and time.
901
902
903\membersection{wxDateTime::GetTicks}\label{wxdatetimegetticks}
904
905\constfunc{time\_t}{GetTicks}{\void}
906
907Returns the number of seconds since Jan 1, 1970. An assert failure will occur
908if the date is not in the range covered by {\tt time\_t} type.
909
910
911\membersection{wxDateTime::GetCentury}\label{wxdatetimegetcentury}
912
913\constfunc{int}{GetCentury}{\param{const TimeZone\& }{tz = Local}}
914
915Returns the century of this date.
916
917
918\membersection{wxDateTime::GetYear}\label{wxdatetimegetyear}
919
920\constfunc{int}{GetYear}{\param{const TimeZone\& }{tz = Local}}
921
922Returns the year in the given timezone (local one by default).
923
924
925\membersection{wxDateTime::GetMonth}\label{wxdatetimegetmonth}
926
927\constfunc{Month}{GetMonth}{\param{const TimeZone\& }{tz = Local}}
928
929Returns the month in the given timezone (local one by default).
930
931
932\membersection{wxDateTime::GetDay}\label{wxdatetimegetday}
933
934\constfunc{wxDateTime\_t}{GetDay}{\param{const TimeZone\& }{tz = Local}}
935
936Returns the day in the given timezone (local one by default).
937
938
939\membersection{wxDateTime::GetWeekDay}\label{wxdatetimegetweekday}
940
941\constfunc{WeekDay}{GetWeekDay}{\param{const TimeZone\& }{tz = Local}}
942
943Returns the week day in the given timezone (local one by default).
944
945
946\membersection{wxDateTime::GetHour}\label{wxdatetimegethour}
947
948\constfunc{wxDateTime\_t}{GetHour}{\param{const TimeZone\& }{tz = Local}}
949
950Returns the hour in the given timezone (local one by default).
951
952
953\membersection{wxDateTime::GetMinute}\label{wxdatetimegetminute}
954
955\constfunc{wxDateTime\_t}{GetMinute}{\param{const TimeZone\& }{tz = Local}}
956
957Returns the minute in the given timezone (local one by default).
958
959
960\membersection{wxDateTime::GetSecond}\label{wxdatetimegetsecond}
961
962\constfunc{wxDateTime\_t}{GetSecond}{\param{const TimeZone\& }{tz = Local}}
963
964Returns the seconds in the given timezone (local one by default).
965
966
967\membersection{wxDateTime::GetMillisecond}\label{wxdatetimegetmillisecond}
968
969\constfunc{wxDateTime\_t}{GetMillisecond}{\param{const TimeZone\& }{tz = Local}}
970
971Returns the milliseconds in the given timezone (local one by default).
972
973
974\membersection{wxDateTime::GetDayOfYear}\label{wxdatetimegetdayofyear}
975
976\constfunc{wxDateTime\_t}{GetDayOfYear}{\param{const TimeZone\& }{tz = Local}}
977
978Returns the day of the year (in $1\ldots366$ range) in the given timezone
979(local one by default).
980
981
982\membersection{wxDateTime::GetWeekOfYear}\label{wxdatetimegetweekofyear}
983
984\constfunc{wxDateTime\_t}{GetWeekOfYear}{\param{WeekFlags }{flags = Monday\_First}, \param{const TimeZone\& }{tz = Local}}
985
986Returns the number of the week of the year this date is in. The first week of
987the year is, according to international standards, the one containing Jan 4 or,
988equivalently, the first week which has Thursday in this year. Both of these
989definitions are the same as saying that the first week of the year must contain
990more than half of its days in this year. Accordingly, the week number will
991always be in $1\ldots53$ range ($52$ for non-leap years).
992
993The function depends on the \helpref{week start}{wxdatetime} convention
994specified by the {\it flags} argument but its results for
995\texttt{Sunday\_First} are not well-defined as the ISO definition quoted above
996applies to the weeks starting on Monday only.
997
998
999\membersection{wxDateTime::GetWeekOfMonth}\label{wxdatetimegetweekofmonth}
1000
1001\constfunc{wxDateTime\_t}{GetWeekOfMonth}{\param{WeekFlags }{flags = Monday\_First}, \param{const TimeZone\& }{tz = Local}}
1002
1003Returns the ordinal number of the week in the month (in $1\ldots5$ range).
1004
1005As \helpref{GetWeekOfYear}{wxdatetimegetweekofyear}, this function supports
1006both conventions for the week start. See the description of these
1007\helpref{week start}{wxdatetime} conventions.
1008
1009
1010\membersection{wxDateTime::IsWorkDay}\label{wxdatetimeisworkday}
1011
1012\constfunc{bool}{IsWorkDay}{\param{Country }{country = Country\_Default}}
1013
1014Returns {\tt true} is this day is not a holiday in the given country.
1015
1016
1017\membersection{wxDateTime::IsGregorianDate}\label{wxdatetimeisgregoriandate}
1018
1019\constfunc{bool}{IsGregorianDate}{\param{GregorianAdoption }{country = Gr\_Standard}}
1020
1021Returns {\tt true} if the given date is later than the date of adoption of the
1022Gregorian calendar in the given country (and hence the Gregorian calendar
1023calculations make sense for it).
1024
1025%%%%%%%%%%%%%%%%%%%%%% dos date and time format %%%%%%%%%%%%%%%%%%%%%%%
1026
1027
1028\membersection{wxDateTime::SetFromDOS}\label{wxdatetimesetfromdos}
1029
1030\func{wxDateTime\&}{Set}{\param{unsigned long }{ddt}}
1031
1032Sets the date from the date and time in
1033\urlref{DOS}{http://developer.novell.com/ndk/doc/smscomp/index.html?page=/ndk/doc/smscomp/sms\_docs/data/hc2vlu5i.html}
1034format.
1035
1036
1037\membersection{wxDateTime::GetAsDOS}\label{wxdatetimegetasdos}
1038
1039\constfunc{unsigned long}{GetAsDOS}{\void}
1040
1041Returns the date and time in
1042\urlref{DOS}{http://developer.novell.com/ndk/doc/smscomp/index.html?page=/ndk/doc/smscomp/sms\_docs/data/hc2vlu5i.html}
1043format.
1044
1045%%%%%%%%%%%%%%%%%%%%%%%%%%% comparison %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1046
1047
1048\membersection{wxDateTime::IsEqualTo}\label{wxdatetimeisequalto}
1049
1050\constfunc{bool}{IsEqualTo}{\param{const wxDateTime\& }{datetime}}
1051
1052Returns {\tt true} if the two dates are strictly identical.
1053
1054
1055\membersection{wxDateTime::IsEarlierThan}\label{wxdatetimeisearlierthan}
1056
1057\constfunc{bool}{IsEarlierThan}{\param{const wxDateTime\& }{datetime}}
1058
1059Returns {\tt true} if this date precedes the given one.
1060
1061
1062\membersection{wxDateTime::IsLaterThan}\label{wxdatetimeislaterthan}
1063
1064\constfunc{bool}{IsLaterThan}{\param{const wxDateTime\& }{datetime}}
1065
1066Returns {\tt true} if this date is later than the given one.
1067
1068
1069\membersection{wxDateTime::IsStrictlyBetween}\label{wxdatetimeisstrictlybetween}
1070
1071\constfunc{bool}{IsStrictlyBetween}{\param{const wxDateTime\& }{t1}, \param{const wxDateTime\& }{t2}}
1072
1073Returns {\tt true} if this date lies strictly between the two others,
1074
1075\wxheading{See also}
1076
1077\helpref{IsBetween}{wxdatetimeisbetween}
1078
1079
1080\membersection{wxDateTime::IsBetween}\label{wxdatetimeisbetween}
1081
1082\constfunc{bool}{IsBetween}{\param{const wxDateTime\& }{t1}, \param{const wxDateTime\& }{t2}}
1083
1084Returns {\tt true} if \helpref{IsStrictlyBetween}{wxdatetimeisstrictlybetween}
1085is {\tt true} or if the date is equal to one of the limit values.
1086
1087\wxheading{See also}
1088
1089\helpref{IsStrictlyBetween}{wxdatetimeisstrictlybetween}
1090
1091
1092\membersection{wxDateTime::IsSameDate}\label{wxdatetimeissamedate}
1093
1094\constfunc{bool}{IsSameDate}{\param{const wxDateTime\& }{dt}}
1095
1096Returns {\tt true} if the date is the same without comparing the time parts.
1097
1098
1099\membersection{wxDateTime::IsSameTime}\label{wxdatetimeissametime}
1100
1101\constfunc{bool}{IsSameTime}{\param{const wxDateTime\& }{dt}}
1102
1103Returns {\tt true} if the time is the same (although dates may differ).
1104
1105
1106\membersection{wxDateTime::IsEqualUpTo}\label{wxdatetimeisequalupto}
1107
1108\constfunc{bool}{IsEqualUpTo}{\param{const wxDateTime\& }{dt}, \param{const wxTimeSpan\& }{ts}}
1109
1110Returns {\tt true} if the date is equal to another one up to the given time
1111interval, i.e. if the absolute difference between the two dates is less than
1112this interval.
1113
1114%%%%%%%%%%%%%%%%%%%%%%%%%%% arithmetics %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1115
1116
1117\membersection{wxDateTime::Add}\label{wxdatetimeaddts}
1118
1119\constfunc{wxDateTime}{Add}{\param{const wxTimeSpan\& }{diff}}
1120
1121\func{wxDateTime\&}{Add}{\param{const wxTimeSpan\& }{diff}}
1122
1123\func{wxDateTime\&}{operator$+=$}{\param{const wxTimeSpan\& }{diff}}
1124
1125Adds the given time span to this object.
1126
1127\pythonnote{This method is named {\tt AddTS} in wxPython.}
1128
1129
1130
1131\membersection{wxDateTime::Add}\label{wxdatetimeaddds}
1132
1133\constfunc{wxDateTime}{Add}{\param{const wxDateSpan\& }{diff}}
1134
1135\func{wxDateTime\&}{Add}{\param{const wxDateSpan\& }{diff}}
1136
1137\func{wxDateTime\&}{operator$+=$}{\param{const wxDateSpan\& }{diff}}
1138
1139Adds the given date span to this object.
1140
1141\pythonnote{This method is named {\tt AddDS} in wxPython.}
1142
1143
1144
1145\membersection{wxDateTime::Subtract}\label{wxdatetimesubtractts}
1146
1147\constfunc{wxDateTime}{Subtract}{\param{const wxTimeSpan\& }{diff}}
1148
1149\func{wxDateTime\&}{Subtract}{\param{const wxTimeSpan\& }{diff}}
1150
1151\func{wxDateTime\&}{operator$-=$}{\param{const wxTimeSpan\& }{diff}}
1152
1153Subtracts the given time span from this object.
1154
1155\pythonnote{This method is named {\tt SubtractTS} in wxPython.}
1156
1157
1158
1159\membersection{wxDateTime::Subtract}\label{wxdatetimesubtractds}
1160
1161\constfunc{wxDateTime}{Subtract}{\param{const wxDateSpan\& }{diff}}
1162
1163\func{wxDateTime\&}{Subtract}{\param{const wxDateSpan\& }{diff}}
1164
1165\func{wxDateTime\&}{operator$-=$}{\param{const wxDateSpan\& }{diff}}
1166
1167Subtracts the given date span from this object.
1168
1169\pythonnote{This method is named {\tt SubtractDS} in wxPython.}
1170
1171
1172
1173\membersection{wxDateTime::Subtract}\label{wxdatetimesubtractdt}
1174
1175\constfunc{wxTimeSpan}{Subtract}{\param{const wxDateTime\& }{dt}}
1176
1177Subtracts another date from this one and returns the difference between them
1178as wxTimeSpan.
1179
1180%%%%%%%%%%%%%%%%%%%%%%%%%%% parsing/formatting %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1181
1182
1183\membersection{wxDateTime::ParseRfc822Date}\label{wxdatetimeparserfc822date}
1184
1185\func{const char *}{ParseRfc822Date}{\param{const wxString\& }{date}, \param{wxString::const\_iterator *}{end = \NULL}}
1186
1187\func{const char *}{ParseRfc822Date}{\param{const char* }{date}}
1188
1189\func{const wchar\_t *}{ParseRfc822Date}{\param{const wchar\_t* }{date}}
1190
1191Parses the string \arg{date} looking for a date formatted according to the RFC
1192822 in it. The exact description of this format may, of course, be found in
1193the RFC (section $5$), but, briefly, this is the format used in the headers of
1194Internet email messages and one of the most common strings expressing date in
1195this format may be something like {\tt "Sat, 18 Dec 1999 00:48:30 +0100"}.
1196
1197Returns {\tt NULL} if the conversion failed, otherwise return the pointer to
1198the character immediately following the part of the string which could be
1199parsed. If the entire string contains only the date in RFC 822 format,
1200the returned pointer will be pointing to a {\tt NUL} character.
1201
1202This function is intentionally strict, it will return an error for any string
1203which is not RFC 822 compliant. If you need to parse date formatted in more
1204free ways, you should use \helpref{ParseDateTime}{wxdatetimeparsedatetime} or
1205\helpref{ParseDate}{wxdatetimeparsedate} instead.
1206
1207
1208\membersection{wxDateTime::ParseFormat}\label{wxdatetimeparseformat}
1209
1210\func{const char *}{ParseFormat}{\param{const wxString\& }{date}, \param{const wxString\& }{format = wxDefaultDateTimeFormat}, \param{const wxDateTime\& }{dateDef = wxDefaultDateTime}, \param{wxString::const\_iterator *}{end = \NULL}}
1211
1212\func{const char *}{ParseFormat}{\param{const char *}{date}, \param{const wxString\& }{format = wxDefaultDateTimeFormat}, \param{const wxDateTime\& }{dateDef = wxDefaultDateTime}}
1213
1214\func{const wchar\_t *}{ParseFormat}{\param{const wchar\_t *}{date}, \param{const wxString\& }{format = wxDefaultDateTimeFormat}, \param{const wxDateTime\& }{dateDef = wxDefaultDateTime}}
1215
1216This function parses the string {\it date} according to the given
1217{\it format}. The system {\tt strptime(3)} function is used whenever available,
1218but even if it is not, this function is still implemented, although support
1219for locale-dependent format specifiers such as {\tt "\%c"}, {\tt "\%x"} or {\tt "\%X"} may
1220not be perfect and GNU extensions such as {\tt "\%z"} and {\tt "\%Z"} are
1221not implemented. This function does handle the month and weekday
1222names in the current locale on all platforms, however.
1223
1224Please see the description of the ANSI C function {\tt strftime(3)} for the syntax
1225of the format string.
1226
1227The {\it dateDef} parameter is used to fill in the fields which could not be
1228determined from the format string. For example, if the format is {\tt "\%d"} (the
1229ay of the month), the month and the year are taken from {\it dateDef}. If
1230it is not specified, \helpref{Today}{wxdatetimetoday} is used as the
1231default date.
1232
1233Returns {\tt NULL} if the conversion failed, otherwise return the pointer to
1234the character which stopped the scan.
1235
1236
1237\membersection{wxDateTime::ParseDateTime}\label{wxdatetimeparsedatetime}
1238
1239\func{const char *}{ParseDateTime}{\param{const wxString\& }{datetime}, \param{wxString::const\_iterator *}{end = \NULL}}
1240
1241\func{const char *}{ParseDateTime}{\param{const char *}{datetime}}
1242
1243\func{const wchar\_t *}{ParseDateTime}{\param{const wchar\_t *}{datetime}}
1244
1245Parses the string {\it datetime} containing the date and time in free format.
1246This function tries as hard as it can to interpret the given string as date
1247and time. Unlike \helpref{ParseRfc822Date}{wxdatetimeparserfc822date}, it
1248will accept anything that may be accepted and will only reject strings which
1249can not be parsed in any way at all.
1250
1251Returns {\tt NULL} if the conversion failed, otherwise return the pointer to
1252the character which stopped the scan.
1253
1254
1255\membersection{wxDateTime::ParseDate}\label{wxdatetimeparsedate}
1256
1257\func{const char *}{ParseDate}{\param{const wxString\& }{date}, \param{wxString::const\_iterator *}{end = \NULL}}
1258
1259\func{const char *}{ParseDate}{\param{const char *}{date}}
1260
1261\func{const wchar\_t *}{ParseDate}{\param{const wchar\_t *}{date}}
1262
1263This function is like \helpref{ParseDateTime}{wxdatetimeparsedatetime}, but it
1264only allows the date to be specified. It is thus less flexible then
1265\helpref{ParseDateTime}{wxdatetimeparsedatetime}, but also has less chances to
1266misinterpret the user input.
1267
1268Returns {\tt NULL} if the conversion failed, otherwise return the pointer to
1269the character which stopped the scan.
1270
1271
1272\membersection{wxDateTime::ParseTime}\label{wxdatetimeparsetime}
1273
1274\func{const char *}{ParseTime}{\param{const wxString\& }{time}, \param{wxString::const\_iterator *}{end = \NULL}}
1275
1276\func{const char *}{ParseTime}{\param{const char *}{time}}
1277
1278\func{const wchar\_t *}{ParseTime}{\param{const wchar\_t *}{time}}
1279
1280This functions is like \helpref{ParseDateTime}{wxdatetimeparsedatetime}, but
1281only allows the time to be specified in the input string.
1282
1283Returns {\tt NULL} if the conversion failed, otherwise return the pointer to
1284the character which stopped the scan.
1285
1286
1287\membersection{wxDateTime::ParseISODate}\label{wxdatetimeparseisodate}
1288
1289\func{bool}{ParseISODate}{\param{const wxString\& }{date}}
1290
1291This function parses the date in ISO 8601 format (YYYY-MM-DD).
1292
1293Returns \true if the entire string was parsed successfully, \false otherwise.
1294
1295
1296\membersection{wxDateTime::ParseISOTime}\label{wxdatetimeparseisotime}
1297
1298\func{bool}{ParseISOTime}{\param{const wxString\& }{date}}
1299
1300This function parses the time in ISO 8601 format (HH:MM:SS).
1301
1302Returns \true if the entire string was parsed successfully, \false otherwise.
1303
1304
1305\membersection{wxDateTime::ParseISOCombined}\label{wxdatetimeparseisocombined}
1306
1307\func{bool}{ParseISOCombined}{\param{const wxString\& }{date}, \param{char }{sep = 'T'}}
1308
1309This function parses the string containing the date and time in ISO 8601
1310combined format (YYYY-MM-DDTHH:MM:SS). The separator between the date and time
1311parts must be equal to \arg{sep} for the function to succeed.
1312
1313Returns \true if the entire string was parsed successfully, \false otherwise.
1314
1315
1316\membersection{wxDateTime::Format}\label{wxdatetimeformat}
1317
1318\constfunc{wxString }{Format}{\param{const wxChar *}{format = wxDefaultDateTimeFormat}, \param{const TimeZone\& }{tz = Local}}
1319
1320This function does the same as the standard ANSI C {\tt strftime(3)} function.
1321Please see its description for the meaning of {\it format} parameter.
1322
1323It also accepts a few wxWidgets-specific extensions: you can optionally specify
1324the width of the field to follow using {\tt printf(3)}-like syntax and the
1325format specification {\tt \%l} can be used to get the number of milliseconds.
1326
1327\wxheading{See also}
1328
1329\helpref{ParseFormat}{wxdatetimeparseformat}
1330
1331
1332\membersection{wxDateTime::FormatDate}\label{wxdatetimeformatdate}
1333
1334\constfunc{wxString }{FormatDate}{\void}
1335
1336Identical to calling \helpref{Format()}{wxdatetimeformat} with {\tt "\%x"}
1337argument (which means `preferred date representation for the current locale').
1338
1339
1340\membersection{wxDateTime::FormatTime}\label{wxdatetimeformattime}
1341
1342\constfunc{wxString }{FormatTime}{\void}
1343
1344Identical to calling \helpref{Format()}{wxdatetimeformat} with {\tt "\%X"}
1345argument (which means `preferred time representation for the current locale').
1346
1347
1348\membersection{wxDateTime::FormatISOCombined}\label{wxdatetimeformatisocombined}
1349
1350\constfunc{wxString}{FormatISOCombined}{\param{char }{sep = 'T'}}
1351
1352Returns the combined date-time representation in the ISO 8601 format
1353(YYYY-MM-DDTHH:MM:SS). The \arg{sep} parameter default value produces the
1354result exactly corresponding to the ISO standard, but it can also be useful to
1355use a space as seprator if a more human-readable combined date-time
1356representation is needed.
1357
1358\wxheading{See also}
1359
1360\helpref{FormatISODate}{wxdatetimeformatisodate},\\
1361\helpref{FormatISOTime}{wxdatetimeformatisotime},\\
1362\helpref{ParseISOCombined}{wxdatetimeparseisocombined}
1363
1364
1365\membersection{wxDateTime::FormatISODate}\label{wxdatetimeformatisodate}
1366
1367\constfunc{wxString }{FormatISODate}{\void}
1368
1369This function returns the date representation in the ISO 8601 format
1370(YYYY-MM-DD).
1371
1372
1373\membersection{wxDateTime::FormatISOTime}\label{wxdatetimeformatisotime}
1374
1375\constfunc{wxString }{FormatISOTime}{\void}
1376
1377This function returns the time representation in the ISO 8601 format
1378(HH:MM:SS).
1379
1380%%%%%%%%%%%%%%%%%%%%%%%%%%% calendar calculations %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1381
1382
1383\membersection{wxDateTime::SetToWeekDayInSameWeek}\label{wxdatetimesettoweekdayinsameweek}
1384
1385\func{wxDateTime\&}{SetToWeekDayInSameWeek}{\param{WeekDay }{weekday}, \param{WeekFlags}{flags = {\tt Monday\_First}}}
1386
1387Adjusts the date so that it will still lie in the same week as before, but its
1388week day will be the given one.
1389
1390Returns the reference to the modified object itself.
1391
1392
1393\membersection{wxDateTime::GetWeekDayInSameWeek}\label{wxdatetimegetweekdayinsameweek}
1394
1395\constfunc{wxDateTime}{GetWeekDayInSameWeek}{\param{WeekDay }{weekday}, \param{WeekFlags}{flags = {\tt Monday\_First}}}
1396
1397Returns the copy of this object to which
1398\helpref{SetToWeekDayInSameWeek}{wxdatetimesettoweekdayinsameweek} was
1399applied.
1400
1401
1402\membersection{wxDateTime::SetToNextWeekDay}\label{wxdatetimesettonextweekday}
1403
1404\func{wxDateTime\&}{SetToNextWeekDay}{\param{WeekDay }{weekday}}
1405
1406Sets the date so that it will be the first {\it weekday} following the current
1407date.
1408
1409Returns the reference to the modified object itself.
1410
1411
1412\membersection{wxDateTime::GetNextWeekDay}\label{wxdatetimegetnextweekday}
1413
1414\constfunc{wxDateTime}{GetNextWeekDay}{\param{WeekDay }{weekday}}
1415
1416Returns the copy of this object to which
1417\helpref{SetToNextWeekDay}{wxdatetimesettonextweekday} was applied.
1418
1419
1420\membersection{wxDateTime::SetToPrevWeekDay}\label{wxdatetimesettoprevweekday}
1421
1422\func{wxDateTime\&}{SetToPrevWeekDay}{\param{WeekDay }{weekday}}
1423
1424Sets the date so that it will be the last {\it weekday} before the current
1425date.
1426
1427Returns the reference to the modified object itself.
1428
1429
1430\membersection{wxDateTime::GetPrevWeekDay}\label{wxdatetimegetprevweekday}
1431
1432\constfunc{wxDateTime}{GetPrevWeekDay}{\param{WeekDay }{weekday}}
1433
1434Returns the copy of this object to which
1435\helpref{SetToPrevWeekDay}{wxdatetimesettoprevweekday} was applied.
1436
1437
1438\membersection{wxDateTime::SetToWeekDay}\label{wxdatetimesettoweekday}
1439
1440\func{bool}{SetToWeekDay}{\param{WeekDay }{weekday}, \param{int }{n = 1}, \param{Month }{month = Inv\_Month}, \param{int }{year = Inv\_Year}}
1441
1442Sets the date to the {\it n}-th {\it weekday} in the given month of the given
1443year (the current month and year are used by default). The parameter {\it n}
1444may be either positive (counting from the beginning of the month) or negative
1445(counting from the end of it).
1446
1447For example, {\tt SetToWeekDay(2, wxDateTime::Wed)} will set the date to the
1448second Wednesday in the current month and
1449{\tt SetToWeekDay(-1, wxDateTime::Sun)} -- to the last Sunday in it.
1450
1451Returns {\tt true} if the date was modified successfully, {\tt false}
1452otherwise meaning that the specified date doesn't exist.
1453
1454
1455\membersection{wxDateTime::GetWeekDay}\label{wxdatetimegetweekday2}
1456
1457\constfunc{wxDateTime}{GetWeekDay}{\param{WeekDay }{weekday}, \param{int }{n = 1}, \param{Month }{month = Inv\_Month}, \param{int }{year = Inv\_Year}}
1458
1459Returns the copy of this object to which
1460\helpref{SetToWeekDay}{wxdatetimesettoweekday} was applied.
1461
1462
1463\membersection{wxDateTime::SetToLastWeekDay}\label{wxdatetimesettolastweekday}
1464
1465\func{bool}{SetToLastWeekDay}{\param{WeekDay }{weekday}, \param{Month }{month = Inv\_Month}, \param{int }{year = Inv\_Year}}
1466
1467The effect of calling this function is the same as of calling
1468{\tt SetToWeekDay(-1, weekday, month, year)}. The date will be set to the last
1469{\it weekday} in the given month and year (the current ones by default).
1470
1471Always returns {\tt true}.
1472
1473
1474\membersection{wxDateTime::GetLastWeekDay}\label{wxdatetimegetlastweekday}
1475
1476\func{wxDateTime}{GetLastWeekDay}{\param{WeekDay }{weekday}, \param{Month }{month = Inv\_Month}, \param{int }{year = Inv\_Year}}
1477
1478Returns the copy of this object to which
1479\helpref{SetToLastWeekDay}{wxdatetimesettolastweekday} was applied.
1480
1481
1482\membersection{wxDateTime::SetToWeekOfYear}\label{wxdatetimesettoweekofyear}
1483
1484\func{static wxDateTime}{SetToWeekOfYear}{\param{int }{year}, \param{wxDateTime\_t }{numWeek}, \param{WeekDay }{weekday = Mon}}
1485
1486Set the date to the given \arg{weekday} in the week number \arg{numWeek} of the
1487given \arg{year} . The number should be in range $1\ldots53$.
1488
1489Note that the returned date may be in a different year than the one passed to
1490this function because both the week $1$ and week $52$ or $53$ (for leap years)
1491contain days from different years. See
1492\helpref{GetWeekOfYear}{wxdatetimegetweekofyear} for the explanation of how the
1493year weeks are counted.
1494
1495
1496\membersection{wxDateTime::SetToLastMonthDay}\label{wxdatetimesettolastmonthday}
1497
1498\func{wxDateTime\&}{SetToLastMonthDay}{\param{Month }{month = Inv\_Month}, \param{int }{year = Inv\_Year}}
1499
1500Sets the date to the last day in the specified month (the current one by
1501default).
1502
1503Returns the reference to the modified object itself.
1504
1505
1506\membersection{wxDateTime::GetLastMonthDay}\label{wxdatetimegetlastmonthday}
1507
1508\constfunc{wxDateTime}{GetLastMonthDay}{\param{Month }{month = Inv\_Month}, \param{int }{year = Inv\_Year}}
1509
1510Returns the copy of this object to which
1511\helpref{SetToLastMonthDay}{wxdatetimesettolastmonthday} was applied.
1512
1513
1514\membersection{wxDateTime::SetToYearDay}\label{wxdatetimesettoyearday}
1515
1516\func{wxDateTime\&}{SetToYearDay}{\param{wxDateTime\_t }{yday}}
1517
1518Sets the date to the day number {\it yday} in the same year (i.e., unlike the
1519other functions, this one does not use the current year). The day number
1520should be in the range $1\ldots366$ for the leap years and $1\ldots365$ for
1521the other ones.
1522
1523Returns the reference to the modified object itself.
1524
1525
1526\membersection{wxDateTime::GetYearDay}\label{wxdatetimegetyearday}
1527
1528\constfunc{wxDateTime}{GetYearDay}{\param{wxDateTime\_t }{yday}}
1529
1530Returns the copy of this object to which
1531\helpref{SetToYearDay}{wxdatetimesettoyearday} was applied.
1532
1533%%%%%%%%%%%%%%%%%%%%%%%%%%% astronomical functions %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1534
1535
1536\membersection{wxDateTime::GetJulianDayNumber}\label{wxdatetimegetjuliandaynumber}
1537
1538\constfunc{double}{GetJulianDayNumber}{\void}
1539
1540Returns the \helpref{JDN}{wxdatetimesetjdn} corresponding to this date. Beware
1541of rounding errors!
1542
1543\wxheading{See also}
1544
1545\helpref{GetModifiedJulianDayNumber}{wxdatetimegetmodifiedjuliandaynumber}
1546
1547
1548\membersection{wxDateTime::GetJDN}\label{wxdatetimegetjdn}
1549
1550\constfunc{double}{GetJDN}{\void}
1551
1552Synonym for \helpref{GetJulianDayNumber}{wxdatetimegetjuliandaynumber}.
1553
1554
1555\membersection{wxDateTime::GetModifiedJulianDayNumber}\label{wxdatetimegetmodifiedjuliandaynumber}
1556
1557\constfunc{double}{GetModifiedJulianDayNumber}{\void}
1558
1559Returns the {\it Modified Julian Day Number} (MJD) which is, by definition,
1560equal to $JDN - 2400000.5$. The MJDs are simpler to work with as the integral
1561MJDs correspond to midnights of the dates in the Gregorian calendar and not th
1562noons like JDN. The MJD $0$ is Nov 17, 1858.
1563
1564
1565\membersection{wxDateTime::GetMJD}\label{wxdatetimegetmjd}
1566
1567\constfunc{double}{GetMJD}{\void}
1568
1569Synonym for \helpref{GetModifiedJulianDayNumber}{wxdatetimegetmodifiedjuliandaynumber}.
1570
1571
1572\membersection{wxDateTime::GetRataDie}\label{wxdatetimegetratadie}
1573
1574\constfunc{double}{GetRataDie}{\void}
1575
1576Return the {\it Rata Die number} of this date.
1577
1578By definition, the Rata Die number is a date specified as the number of days
1579relative to a base date of December 31 of the year 0. Thus January 1 of the
1580year 1 is Rata Die day 1.
1581
1582%%%%%%%%%%%%%%%%%%%%%%%%%%% timezone and DST %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
1583
1584
1585\membersection{wxDateTime::FromTimezone}\label{wxdatetimefromtimezone}
1586
1587\constfunc{wxDateTime}{FromTimezone}{\param{const TimeZone\& }{tz}, \param{bool }{noDST = false}}
1588
1589Transform the date from the given time zone to the local one. If {\it noDST} is
1590{\tt true}, no DST adjustments will be made.
1591
1592Returns the date in the local time zone.
1593
1594
1595\membersection{wxDateTime::ToTimezone}\label{wxdatetimetotimezone}
1596
1597\constfunc{wxDateTime}{ToTimezone}{\param{const TimeZone\& }{tz}, \param{bool }{noDST = false}}
1598
1599Transform the date to the given time zone. If {\it noDST} is {\tt true}, no
1600DST adjustments will be made.
1601
1602Returns the date in the new time zone.
1603
1604
1605\membersection{wxDateTime::MakeTimezone}\label{wxdatetimemaketimezone}
1606
1607\func{wxDateTime\&}{MakeTimezone}{\param{const TimeZone\& }{tz}, \param{bool }{noDST = false}}
1608
1609Modifies the object in place to represent the date in another time zone. If
1610{\it noDST} is {\tt true}, no DST adjustments will be made.
1611
1612
1613\membersection{wxDateTime::MakeFromTimezone}\label{wxdatetimemakefromtimezone}
1614
1615\func{wxDateTime\&}{MakeFromTimezone}{\param{const TimeZone\& }{tz}, \param{bool }{noDST = false}}
1616
1617Same as \helpref{FromTimezone}{wxdatetimefromtimezone} but modifies the object
1618in place.
1619
1620
1621\membersection{wxDateTime::ToUTC}\label{wxdatetimetoutc}
1622
1623\constfunc{wxDateTime}{ToUTC}{\param{bool }{noDST = false}}
1624
1625This is the same as calling \helpref{ToTimezone}{wxdatetimetotimezone} with
1626the argument {\tt GMT0}.
1627
1628
1629\membersection{wxDateTime::MakeUTC}\label{wxdatetimemakeutc}
1630
1631\func{wxDateTime\&}{MakeUTC}{\param{bool }{noDST = false}}
1632
1633This is the same as calling \helpref{MakeTimezone}{wxdatetimemaketimezone} with
1634the argument {\tt GMT0}.
1635
1636
1637\membersection{wxDateTime::IsDST}\label{wxdatetimeisdst}
1638
1639\constfunc{int}{IsDST}{\param{Country }{country = Country\_Default}}
1640
1641Returns {\tt true} if the DST is applied for this date in the given country.
1642
1643\wxheading{See also}
1644
1645\helpref{GetBeginDST}{wxdatetimegetbegindst} and
1646\helpref{GetEndDST}{wxdatetimegetenddst}
1647
1648\section{\class{wxDateTimeHolidayAuthority}}\label{wxdatetimeholidayauthority}
1649
1650\wxheading{Derived from}
1651
1652No base class
1653
1654\wxheading{Include files}
1655
1656<wx/datetime.h>
1657
1658\wxheading{Library}
1659
1660\helpref{wxBase}{librarieslist}
1661
1662\latexignore{\rtfignore{\wxheading{Members}}}
1663
1664TODO
1665
1666\section{\class{wxDateTimeWorkDays}}\label{wxdatetimeworkdays}
1667
1668\wxheading{Derived from}
1669
1670No base class
1671
1672\wxheading{Include files}
1673
1674<wx/datetime.h>
1675
1676\wxheading{Library}
1677
1678\helpref{wxBase}{librarieslist}
1679
1680\latexignore{\rtfignore{\wxheading{Members}}}
1681
1682TODO
1683