git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2908 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			147 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			147 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
/////////////////////////////////////////////////////////////////////////////
 | 
						|
// Name:        date.h
 | 
						|
// Purpose:     wxDate class
 | 
						|
// Author:      Julian Smart, Steve Marcus, Eric Simon, Chris Hill,
 | 
						|
//              Charles D. Price
 | 
						|
// Modified by:
 | 
						|
// Created:     01/02/97
 | 
						|
// RCS-ID:      $Id$
 | 
						|
// Copyright:   (c)
 | 
						|
// Licence:     wxWindows licence
 | 
						|
/////////////////////////////////////////////////////////////////////////////
 | 
						|
 | 
						|
#ifndef _WX_DATE_H_
 | 
						|
#define _WX_DATE_H_
 | 
						|
 | 
						|
#ifdef __GNUG__
 | 
						|
#pragma interface "date.h"
 | 
						|
#endif
 | 
						|
 | 
						|
#include "wx/object.h"
 | 
						|
#include "wx/string.h"
 | 
						|
 | 
						|
#if wxUSE_TIMEDATE
 | 
						|
// These lines necessary to stop VC++ 6 being confused about namespaces
 | 
						|
class WXDLLEXPORT wxDate;
 | 
						|
bool WXDLLEXPORT operator<(const wxDate &dt1, const wxDate &dt2);
 | 
						|
bool WXDLLEXPORT operator<(const wxDate &dt1, const wxDate &dt2);
 | 
						|
bool WXDLLEXPORT operator <= (const wxDate &dt1, const wxDate &dt2);
 | 
						|
bool WXDLLEXPORT operator >  (const wxDate &dt1, const wxDate &dt2);
 | 
						|
bool WXDLLEXPORT operator >= (const wxDate &dt1, const wxDate &dt2);
 | 
						|
bool WXDLLEXPORT operator == (const wxDate &dt1, const wxDate &dt2);
 | 
						|
bool WXDLLEXPORT operator != (const wxDate &dt1, const wxDate &dt2);
 | 
						|
 | 
						|
enum wxdate_format_type {wxMDY, wxDAY, wxMONTH, wxFULL, wxEUROPEAN};
 | 
						|
 | 
						|
#define wxNO_CENTURY  0x02
 | 
						|
#define wxDATE_ABBR   0x04
 | 
						|
 | 
						|
class WXDLLEXPORT wxDate : public wxObject
 | 
						|
{
 | 
						|
DECLARE_DYNAMIC_CLASS(wxDate)
 | 
						|
 | 
						|
protected:
 | 
						|
    unsigned long julian; // see julDate();  days since 1/1/4713 B.C.
 | 
						|
    int month;            // see NMonth()
 | 
						|
    int day;              // see Day()
 | 
						|
    int year;             // see NYear4()
 | 
						|
    int day_of_week;      // see NDOW();  1 = Sunday, ... 7 = Saturday
 | 
						|
 | 
						|
private:
 | 
						|
    int       DisplayFormat;
 | 
						|
    unsigned char DisplayOptions;
 | 
						|
 | 
						|
    void julian_to_mdy ();         // convert julian day to mdy
 | 
						|
    void julian_to_wday ();        // convert julian day to day_of_week
 | 
						|
    void mdy_to_julian ();         // convert mdy to julian day
 | 
						|
 | 
						|
public:
 | 
						|
    wxDate ();
 | 
						|
    wxDate (long j);
 | 
						|
    wxDate (int m, int d, int y);
 | 
						|
    wxDate (const wxString& dat);
 | 
						|
    wxDate (const wxDate &dt);
 | 
						|
 | 
						|
#ifndef __SALFORDC__
 | 
						|
    operator wxString  (void);
 | 
						|
#endif
 | 
						|
 | 
						|
    void operator =   (const wxDate& date);
 | 
						|
    void operator =   (const wxString& date);
 | 
						|
 | 
						|
    wxDate operator +  (long i);
 | 
						|
    wxDate operator +  (int  i);
 | 
						|
 | 
						|
    wxDate operator -  (long i);
 | 
						|
    wxDate operator -  (int  i);
 | 
						|
 | 
						|
    long operator -  (const wxDate &dt);
 | 
						|
 | 
						|
    wxDate &operator += (long i);
 | 
						|
    wxDate &operator -= (long i);
 | 
						|
 | 
						|
    wxDate &operator ++ ();     // Prefix increment
 | 
						|
    wxDate &operator ++ (int);  // Postfix increment
 | 
						|
    wxDate &operator -- ();     // Prefix decrement
 | 
						|
    wxDate &operator -- (int);  // Postfix decrement
 | 
						|
 | 
						|
    friend bool WXDLLEXPORT operator <  (const wxDate &dt1, const wxDate &dt2);
 | 
						|
    friend bool WXDLLEXPORT operator <= (const wxDate &dt1, const wxDate &dt2);
 | 
						|
    friend bool WXDLLEXPORT operator >  (const wxDate &dt1, const wxDate &dt2);
 | 
						|
    friend bool WXDLLEXPORT operator >= (const wxDate &dt1, const wxDate &dt2);
 | 
						|
    friend bool WXDLLEXPORT operator == (const wxDate &dt1, const wxDate &dt2);
 | 
						|
    friend bool WXDLLEXPORT operator != (const wxDate &dt1, const wxDate &dt2);
 | 
						|
 | 
						|
#if wxUSE_STD_IOSTREAM
 | 
						|
    friend ostream WXDLLEXPORT & operator << (ostream &os, const wxDate &dt);
 | 
						|
#endif
 | 
						|
 | 
						|
    wxString FormatDate      (int type=-1) const;
 | 
						|
    void  SetFormat (int format);
 | 
						|
    int   SetOption (int option, bool enable=TRUE);
 | 
						|
 | 
						|
    long  GetJulianDate() const;  // returns julian date
 | 
						|
    int   GetDayOfYear()  const;  // returns relative date since Jan. 1
 | 
						|
    bool  IsLeapYear()    const;  // returns TRUE if leap year, FALSE if not
 | 
						|
 | 
						|
    // Version 4.0 Extension to Public Interface - CDP
 | 
						|
 | 
						|
    // These 'Set's modify the date object and actually SET it
 | 
						|
    // They all return a reference to self (*this)
 | 
						|
 | 
						|
    wxDate &Set();            // Sets to current system date
 | 
						|
    wxDate &Set(long lJulian);
 | 
						|
    wxDate &Set(int nMonth, int nDay, int nYear);
 | 
						|
 | 
						|
    wxDate &AddWeeks(int nCount = 1);  //
 | 
						|
    wxDate &AddMonths(int nCount = 1); // May also pass neg# to decrement
 | 
						|
    wxDate &AddYears(int nCount = 1);  //
 | 
						|
 | 
						|
    int   GetDay() const;      // Numeric Day of date object
 | 
						|
    int   GetDaysInMonth();    // Number of days in month (1..31)
 | 
						|
    int   GetFirstDayOfMonth() const; // First Day Of Month  (1..7)
 | 
						|
 | 
						|
    wxString GetDayOfWeekName();       // Character Day Of Week ('Sunday'..'Saturday')
 | 
						|
    int   GetDayOfWeek() const;     // (1..7)
 | 
						|
 | 
						|
    int   GetWeekOfMonth();            // Numeric Week Of Month  (1..6)
 | 
						|
    int   GetWeekOfYear();            // Numeric Week Of Year   (1..52)
 | 
						|
 | 
						|
    wxString GetMonthName();            // Character Month name
 | 
						|
    int   GetMonth() const;          // Month Number (1..12)
 | 
						|
    wxDate  GetMonthStart();         // First Date Of Month
 | 
						|
    wxDate  GetMonthEnd();           // Last Date Of Month
 | 
						|
 | 
						|
    int   GetYear() const;           // eg. 1992
 | 
						|
    wxDate  GetYearStart();          // First Date Of Year
 | 
						|
    wxDate  GetYearEnd();            // Last Date Of Year
 | 
						|
 | 
						|
    bool IsBetween(const wxDate& first, const wxDate& second) const;
 | 
						|
 | 
						|
    wxDate Previous(int dayOfWeek) const;
 | 
						|
};
 | 
						|
 | 
						|
#endif // wxUSE_TIMEDATE
 | 
						|
#endif
 | 
						|
    // _WX_DATE_H_
 |