last fixes to fixes (MSW compilation works now)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2003 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
e87b7b6000
commit
c30aaf75f0
@ -3,11 +3,11 @@
|
|||||||
// Purpose: wxDate class
|
// Purpose: wxDate class
|
||||||
// Author: Julian Smart, Steve Marcus, Eric Simon, Chris Hill,
|
// Author: Julian Smart, Steve Marcus, Eric Simon, Chris Hill,
|
||||||
// Charles D. Price
|
// Charles D. Price
|
||||||
// Modified by:
|
// Modified by:
|
||||||
// Created: 01/02/97
|
// Created: 01/02/97
|
||||||
// RCS-ID: $Id$
|
// RCS-ID: $Id$
|
||||||
// Copyright: (c)
|
// Copyright: (c)
|
||||||
// Licence: wxWindows licence
|
// Licence: wxWindows licence
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#ifndef _WX_DATE_H_
|
#ifndef _WX_DATE_H_
|
||||||
@ -36,108 +36,109 @@ enum wxdate_format_type {wxMDY, wxDAY, wxMONTH, wxFULL, wxEUROPEAN};
|
|||||||
#define wxNO_CENTURY 0x02
|
#define wxNO_CENTURY 0x02
|
||||||
#define wxDATE_ABBR 0x04
|
#define wxDATE_ABBR 0x04
|
||||||
|
|
||||||
class WXDLLEXPORT wxDate: public wxObject
|
class WXDLLEXPORT wxDate : public wxObject
|
||||||
{
|
{
|
||||||
DECLARE_DYNAMIC_CLASS(wxDate)
|
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:
|
protected:
|
||||||
int DisplayFormat;
|
unsigned long julian; // see julDate(); days since 1/1/4713 B.C.
|
||||||
unsigned char DisplayOptions;
|
int month; // see NMonth()
|
||||||
|
int day; // see Day()
|
||||||
|
int year; // see NYear4()
|
||||||
|
int day_of_week; // see NDOW(); 1 = Sunday, ... 7 = Saturday
|
||||||
|
|
||||||
void julian_to_mdy (); // convert julian day to mdy
|
private:
|
||||||
void julian_to_wday (); // convert julian day to day_of_week
|
int DisplayFormat;
|
||||||
void mdy_to_julian (); // convert mdy to julian day
|
unsigned char DisplayOptions;
|
||||||
|
|
||||||
public:
|
void julian_to_mdy (); // convert julian day to mdy
|
||||||
wxDate ();
|
void julian_to_wday (); // convert julian day to day_of_week
|
||||||
wxDate (long j);
|
void mdy_to_julian (); // convert mdy to julian day
|
||||||
wxDate (int m, int d, int y);
|
|
||||||
wxDate (const wxString& dat);
|
public:
|
||||||
wxDate (const wxDate &dt);
|
wxDate ();
|
||||||
|
wxDate (long j);
|
||||||
|
wxDate (int m, int d, int y);
|
||||||
|
wxDate (const wxString& dat);
|
||||||
|
wxDate (const wxDate &dt);
|
||||||
|
|
||||||
#ifndef __SALFORDC__
|
#ifndef __SALFORDC__
|
||||||
operator wxString (void);
|
operator wxString (void);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
void operator = (const wxDate& date);
|
void operator = (const wxDate& date);
|
||||||
void operator = (const wxString& date);
|
void operator = (const wxString& date);
|
||||||
|
|
||||||
wxDate operator + (long i);
|
wxDate operator + (long i);
|
||||||
wxDate operator + (int i);
|
wxDate operator + (int i);
|
||||||
|
|
||||||
wxDate operator - (long i);
|
wxDate operator - (long i);
|
||||||
wxDate operator - (int i);
|
wxDate operator - (int i);
|
||||||
|
|
||||||
long operator - (const wxDate &dt);
|
long operator - (const wxDate &dt);
|
||||||
|
|
||||||
wxDate &operator += (long i);
|
wxDate &operator += (long i);
|
||||||
wxDate &operator -= (long i);
|
wxDate &operator -= (long i);
|
||||||
|
|
||||||
wxDate &operator ++ (); // Prefix increment
|
wxDate &operator ++ (); // Prefix increment
|
||||||
wxDate &operator ++ (int); // Postfix increment
|
wxDate &operator ++ (int); // Postfix increment
|
||||||
wxDate &operator -- (); // Prefix decrement
|
wxDate &operator -- (); // Prefix decrement
|
||||||
wxDate &operator -- (int); // Postfix 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);
|
||||||
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);
|
||||||
|
|
||||||
friend ostream WXDLLEXPORT & operator << (ostream &os, const wxDate &dt);
|
friend ostream WXDLLEXPORT & operator << (ostream &os, const wxDate &dt);
|
||||||
|
|
||||||
wxString FormatDate (int type=-1) const;
|
wxString FormatDate (int type=-1) const;
|
||||||
void SetFormat (int format);
|
void SetFormat (int format);
|
||||||
int SetOption (int option, bool enable=TRUE);
|
int SetOption (int option, bool enable=TRUE);
|
||||||
|
|
||||||
long GetJulianDate() const; // returns julian date
|
long GetJulianDate() const; // returns julian date
|
||||||
int GetDayOfYear() const; // returns relative date since Jan. 1
|
int GetDayOfYear() const; // returns relative date since Jan. 1
|
||||||
bool IsLeapYear() const; // returns TRUE if leap year, FALSE if not
|
bool IsLeapYear() const; // returns TRUE if leap year, FALSE if not
|
||||||
|
|
||||||
// Version 4.0 Extension to Public Interface - CDP
|
// 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
|
// These 'Set's modify the date object and actually SET it
|
||||||
wxDate &Set(long lJulian);
|
// They all return a reference to self (*this)
|
||||||
wxDate &Set(int nMonth, int nDay, int nYear);
|
|
||||||
|
|
||||||
wxDate &AddWeeks(int nCount = 1); //
|
wxDate &Set(); // Sets to current system date
|
||||||
wxDate &AddMonths(int nCount = 1); // May also pass neg# to decrement
|
wxDate &Set(long lJulian);
|
||||||
wxDate &AddYears(int nCount = 1); //
|
wxDate &Set(int nMonth, int nDay, int nYear);
|
||||||
|
|
||||||
int GetDay() const; // Numeric Day of date object
|
wxDate &AddWeeks(int nCount = 1); //
|
||||||
int GetDaysInMonth(); // Number of days in month (1..31)
|
wxDate &AddMonths(int nCount = 1); // May also pass neg# to decrement
|
||||||
int GetFirstDayOfMonth() const; // First Day Of Month (1..7)
|
wxDate &AddYears(int nCount = 1); //
|
||||||
|
|
||||||
wxString GetDayOfWeekName(); // Character Day Of Week ('Sunday'..'Saturday')
|
int GetDay() const; // Numeric Day of date object
|
||||||
int GetDayOfWeek() const; // (1..7)
|
int GetDaysInMonth(); // Number of days in month (1..31)
|
||||||
|
int GetFirstDayOfMonth() const; // First Day Of Month (1..7)
|
||||||
|
|
||||||
int GetWeekOfMonth(); // Numeric Week Of Month (1..6)
|
wxString GetDayOfWeekName(); // Character Day Of Week ('Sunday'..'Saturday')
|
||||||
int GetWeekOfYear(); // Numeric Week Of Year (1..52)
|
int GetDayOfWeek() const; // (1..7)
|
||||||
|
|
||||||
wxString GetMonthName(); // Character Month name
|
int GetWeekOfMonth(); // Numeric Week Of Month (1..6)
|
||||||
int GetMonth() const; // Month Number (1..12)
|
int GetWeekOfYear(); // Numeric Week Of Year (1..52)
|
||||||
wxDate GetMonthStart(); // First Date Of Month
|
|
||||||
wxDate GetMonthEnd(); // Last Date Of Month
|
|
||||||
|
|
||||||
int GetYear() const; // eg. 1992
|
wxString GetMonthName(); // Character Month name
|
||||||
wxDate GetYearStart(); // First Date Of Year
|
int GetMonth() const; // Month Number (1..12)
|
||||||
wxDate GetYearEnd(); // Last Date Of Year
|
wxDate GetMonthStart(); // First Date Of Month
|
||||||
|
wxDate GetMonthEnd(); // Last Date Of Month
|
||||||
|
|
||||||
bool IsBetween(const wxDate& first, const wxDate& second) const;
|
int GetYear() const; // eg. 1992
|
||||||
|
wxDate GetYearStart(); // First Date Of Year
|
||||||
|
wxDate GetYearEnd(); // Last Date Of Year
|
||||||
|
|
||||||
wxDate Previous(int dayOfWeek) const;
|
bool IsBetween(const wxDate& first, const wxDate& second) const;
|
||||||
|
|
||||||
|
wxDate Previous(int dayOfWeek) const;
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif // wxUSE_TIMEDATE
|
||||||
#endif
|
#endif
|
||||||
// _WX_DATE_H_
|
// _WX_DATE_H_
|
||||||
|
@ -16,8 +16,9 @@
|
|||||||
#pragma interface "log.h"
|
#pragma interface "log.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include <wx/dynarray.h>
|
#include <time.h> // for time_t
|
||||||
#include <time.h>
|
|
||||||
|
#include "wx/dynarray.h"
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// constants
|
// constants
|
||||||
|
@ -8,11 +8,11 @@
|
|||||||
// Still Further Enhanced by Hill & Simon v3.10 8/05/91
|
// Still Further Enhanced by Hill & Simon v3.10 8/05/91
|
||||||
// Version 4 by Charles D. Price 6/27/92
|
// Version 4 by Charles D. Price 6/27/92
|
||||||
// Integrated into wxWindows by Julian Smart 9th July 1995
|
// Integrated into wxWindows by Julian Smart 9th July 1995
|
||||||
// Modified by:
|
// Modified by:
|
||||||
// Created: 01/02/97
|
// Created: 01/02/97
|
||||||
// RCS-ID: $Id$
|
// RCS-ID: $Id$
|
||||||
// Copyright: (c) Julian Smart and Markus Holzem
|
// Copyright: (c) Julian Smart and Markus Holzem
|
||||||
// Licence: wxWindows licence
|
// Licence: wxWindows licence
|
||||||
/////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
#ifdef __GNUG__
|
#ifdef __GNUG__
|
||||||
@ -49,12 +49,12 @@
|
|||||||
#define ABBR_LENGTH 3
|
#define ABBR_LENGTH 3
|
||||||
|
|
||||||
static const char *dayname[] = {
|
static const char *dayname[] = {
|
||||||
"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
|
"Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"
|
||||||
};
|
};
|
||||||
|
|
||||||
static const char *mname[] = {
|
static const char *mname[] = {
|
||||||
"January", "February", "March", "April", "May", "June", "July", "August",
|
"January", "February", "March", "April", "May", "June", "July", "August",
|
||||||
"September", "October", "November", "December"
|
"September", "October", "November", "December"
|
||||||
};
|
};
|
||||||
|
|
||||||
static int GauDays[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
|
static int GauDays[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
|
||||||
@ -63,96 +63,96 @@ static int GauDays[] = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
|
|||||||
IMPLEMENT_DYNAMIC_CLASS(wxDate, wxObject)
|
IMPLEMENT_DYNAMIC_CLASS(wxDate, wxObject)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
// Constructors
|
// Constructors
|
||||||
////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
wxDate::wxDate()
|
wxDate::wxDate()
|
||||||
{
|
{
|
||||||
DisplayFormat=wxMDY;
|
DisplayFormat=wxMDY;
|
||||||
DisplayOptions='\0';
|
DisplayOptions='\0';
|
||||||
month = day = year = day_of_week = 0;
|
month = day = year = day_of_week = 0;
|
||||||
julian = 0;
|
julian = 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDate::wxDate (long j) : julian(j)
|
wxDate::wxDate (long j) : julian(j)
|
||||||
{
|
{
|
||||||
DisplayFormat=wxMDY;
|
DisplayFormat=wxMDY;
|
||||||
DisplayOptions='\0';
|
DisplayOptions='\0';
|
||||||
julian_to_mdy ();
|
julian_to_mdy ();
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDate::wxDate (int m, int d, int y) : month(m), day(d), year(y)
|
wxDate::wxDate (int m, int d, int y) : month(m), day(d), year(y)
|
||||||
{
|
{
|
||||||
DisplayFormat=wxMDY;
|
DisplayFormat=wxMDY;
|
||||||
DisplayOptions='\0';
|
DisplayOptions='\0';
|
||||||
mdy_to_julian ();
|
mdy_to_julian ();
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDate::wxDate (const wxString& dat)
|
wxDate::wxDate (const wxString& dat)
|
||||||
{
|
{
|
||||||
DisplayFormat=wxMDY;
|
DisplayFormat=wxMDY;
|
||||||
DisplayOptions='\0';
|
DisplayOptions='\0';
|
||||||
if (strcmp(dat, "TODAY") == 0 || strcmp(dat, "today") == 0)
|
if (strcmp(dat, "TODAY") == 0 || strcmp(dat, "today") == 0)
|
||||||
{
|
{
|
||||||
// Sets the current date
|
// Sets the current date
|
||||||
Set();
|
Set();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
char buf[100];
|
char buf[100];
|
||||||
strcpy(buf, (char *) (const char *)dat);
|
strcpy(buf, (char *) (const char *)dat);
|
||||||
|
|
||||||
char *token = strtok(buf,"/-");
|
char *token = strtok(buf,"/-");
|
||||||
month = atoi(token);
|
month = atoi(token);
|
||||||
day = atoi(strtok((char *) NULL,"/-"));
|
day = atoi(strtok((char *) NULL,"/-"));
|
||||||
year = atoi(strtok((char *) NULL," "));
|
year = atoi(strtok((char *) NULL," "));
|
||||||
}
|
}
|
||||||
|
|
||||||
mdy_to_julian ();
|
mdy_to_julian ();
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDate::wxDate (const wxDate &dt)
|
wxDate::wxDate (const wxDate &dt)
|
||||||
{
|
{
|
||||||
DisplayFormat=dt.DisplayFormat;
|
DisplayFormat=dt.DisplayFormat;
|
||||||
DisplayOptions=dt.DisplayOptions;
|
DisplayOptions=dt.DisplayOptions;
|
||||||
month = dt.month;
|
month = dt.month;
|
||||||
day = dt.day;
|
day = dt.day;
|
||||||
year = dt.year;
|
year = dt.year;
|
||||||
mdy_to_julian ();
|
mdy_to_julian ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxDate::operator = (const wxDate &dt)
|
void wxDate::operator = (const wxDate &dt)
|
||||||
{
|
{
|
||||||
DisplayFormat=dt.DisplayFormat;
|
DisplayFormat=dt.DisplayFormat;
|
||||||
DisplayOptions=dt.DisplayOptions;
|
DisplayOptions=dt.DisplayOptions;
|
||||||
month = dt.month;
|
month = dt.month;
|
||||||
day = dt.day;
|
day = dt.day;
|
||||||
year = dt.year;
|
year = dt.year;
|
||||||
mdy_to_julian ();
|
mdy_to_julian (); // wxUSE_TIMEDATE
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxDate::operator = (const wxString& dat)
|
void wxDate::operator = (const wxString& dat)
|
||||||
{
|
{
|
||||||
DisplayFormat=wxMDY;
|
DisplayFormat=wxMDY;
|
||||||
DisplayOptions='\0';
|
DisplayOptions='\0';
|
||||||
if (strcmp(dat, "TODAY") == 0 || strcmp(dat, "today") == 0)
|
if (strcmp(dat, "TODAY") == 0 || strcmp(dat, "today") == 0)
|
||||||
{
|
{
|
||||||
// Sets the current date
|
// Sets the current date
|
||||||
Set();
|
Set();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
char buf[100];
|
char buf[100];
|
||||||
strcpy(buf, (char *)(const char *)dat);
|
strcpy(buf, (char *)(const char *)dat);
|
||||||
|
|
||||||
char *token = strtok(buf,"/-");
|
char *token = strtok(buf,"/-");
|
||||||
month = atoi(token);
|
month = atoi(token);
|
||||||
day = atoi(strtok((char *) NULL,"/-"));
|
day = atoi(strtok((char *) NULL,"/-"));
|
||||||
year = atoi(strtok((char *) NULL," "));
|
year = atoi(strtok((char *) NULL," "));
|
||||||
}
|
}
|
||||||
|
|
||||||
mdy_to_julian ();
|
mdy_to_julian ();
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////
|
||||||
@ -162,7 +162,7 @@ void wxDate::operator = (const wxString& dat)
|
|||||||
#ifndef __SALFORDC__
|
#ifndef __SALFORDC__
|
||||||
wxDate::operator wxString( void )
|
wxDate::operator wxString( void )
|
||||||
{
|
{
|
||||||
return FormatDate();
|
return FormatDate();
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -172,73 +172,73 @@ wxDate::operator wxString( void )
|
|||||||
|
|
||||||
wxDate wxDate::operator + (long i)
|
wxDate wxDate::operator + (long i)
|
||||||
{
|
{
|
||||||
wxDate dp(julian + i);
|
wxDate dp(julian + i);
|
||||||
return dp;
|
return dp;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDate wxDate::operator + (int i)
|
wxDate wxDate::operator + (int i)
|
||||||
{
|
{
|
||||||
wxDate dp(julian + (long)i);
|
wxDate dp(julian + (long)i);
|
||||||
return dp;
|
return dp;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDate wxDate::operator - (long i)
|
wxDate wxDate::operator - (long i)
|
||||||
{
|
{
|
||||||
wxDate dp(julian - i);
|
wxDate dp(julian - i);
|
||||||
return dp;
|
return dp;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDate wxDate::operator - (int i)
|
wxDate wxDate::operator - (int i)
|
||||||
{
|
{
|
||||||
wxDate dp(julian - (long)i);
|
wxDate dp(julian - (long)i);
|
||||||
return dp;
|
return dp;
|
||||||
}
|
}
|
||||||
|
|
||||||
long wxDate::operator - (const wxDate &dt)
|
long wxDate::operator - (const wxDate &dt)
|
||||||
{
|
{
|
||||||
return ( julian - dt.julian );
|
return ( julian - dt.julian );
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDate &wxDate::operator += (long i)
|
wxDate &wxDate::operator += (long i)
|
||||||
{
|
{
|
||||||
julian += i;
|
julian += i;
|
||||||
julian_to_mdy();
|
julian_to_mdy();
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDate &wxDate::operator -= (long i)
|
wxDate &wxDate::operator -= (long i)
|
||||||
{
|
{
|
||||||
julian -= i;
|
julian -= i;
|
||||||
julian_to_mdy();
|
julian_to_mdy();
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDate &wxDate::operator ++()
|
wxDate &wxDate::operator ++()
|
||||||
{
|
{
|
||||||
julian++;
|
julian++;
|
||||||
julian_to_mdy();
|
julian_to_mdy();
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDate &wxDate::operator ++(int)
|
wxDate &wxDate::operator ++(int)
|
||||||
{
|
{
|
||||||
julian++;
|
julian++;
|
||||||
julian_to_mdy();
|
julian_to_mdy();
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDate &wxDate::operator --()
|
wxDate &wxDate::operator --()
|
||||||
{
|
{
|
||||||
julian--;
|
julian--;
|
||||||
julian_to_mdy();
|
julian_to_mdy();
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDate &wxDate::operator --(int)
|
wxDate &wxDate::operator --(int)
|
||||||
{
|
{
|
||||||
julian--;
|
julian--;
|
||||||
julian_to_mdy();
|
julian_to_mdy();
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////
|
||||||
@ -247,32 +247,32 @@ wxDate &wxDate::operator --(int)
|
|||||||
|
|
||||||
bool WXDLLEXPORT operator < (const wxDate &dt1, const wxDate &dt2)
|
bool WXDLLEXPORT operator < (const wxDate &dt1, const wxDate &dt2)
|
||||||
{
|
{
|
||||||
return ( dt1.julian < dt2.julian );
|
return ( dt1.julian < dt2.julian );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WXDLLEXPORT operator <= (const wxDate &dt1, const wxDate &dt2)
|
bool WXDLLEXPORT operator <= (const wxDate &dt1, const wxDate &dt2)
|
||||||
{
|
{
|
||||||
return ( (dt1.julian == dt2.julian) || (dt1.julian < dt2.julian) );
|
return ( (dt1.julian == dt2.julian) || (dt1.julian < dt2.julian) );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WXDLLEXPORT operator > (const wxDate &dt1, const wxDate &dt2)
|
bool WXDLLEXPORT operator > (const wxDate &dt1, const wxDate &dt2)
|
||||||
{
|
{
|
||||||
return ( dt1.julian > dt2.julian );
|
return ( dt1.julian > dt2.julian );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WXDLLEXPORT operator >= (const wxDate &dt1, const wxDate &dt2)
|
bool WXDLLEXPORT operator >= (const wxDate &dt1, const wxDate &dt2)
|
||||||
{
|
{
|
||||||
return ( (dt1.julian == dt2.julian) || (dt1.julian > dt2.julian) );
|
return ( (dt1.julian == dt2.julian) || (dt1.julian > dt2.julian) );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WXDLLEXPORT operator == (const wxDate &dt1, const wxDate &dt2)
|
bool WXDLLEXPORT operator == (const wxDate &dt1, const wxDate &dt2)
|
||||||
{
|
{
|
||||||
return ( dt1.julian == dt2.julian );
|
return ( dt1.julian == dt2.julian );
|
||||||
}
|
}
|
||||||
|
|
||||||
bool WXDLLEXPORT operator != (const wxDate &dt1, const wxDate &dt2)
|
bool WXDLLEXPORT operator != (const wxDate &dt1, const wxDate &dt2)
|
||||||
{
|
{
|
||||||
return ( dt1.julian != dt2.julian );
|
return ( dt1.julian != dt2.julian );
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////
|
||||||
@ -281,7 +281,7 @@ bool WXDLLEXPORT operator != (const wxDate &dt1, const wxDate &dt2)
|
|||||||
|
|
||||||
ostream WXDLLEXPORT & operator << (ostream &os, const wxDate &dt)
|
ostream WXDLLEXPORT & operator << (ostream &os, const wxDate &dt)
|
||||||
{
|
{
|
||||||
return os << (const char *) dt.FormatDate();
|
return os << (const char *) dt.FormatDate();
|
||||||
}
|
}
|
||||||
|
|
||||||
//////////////////////////////////////////////////////////////
|
//////////////////////////////////////////////////////////////
|
||||||
@ -290,49 +290,49 @@ ostream WXDLLEXPORT & operator << (ostream &os, const wxDate &dt)
|
|||||||
|
|
||||||
void wxDate::julian_to_wday (void)
|
void wxDate::julian_to_wday (void)
|
||||||
{
|
{
|
||||||
day_of_week = (int) ((julian + 2) % 7 + 1);
|
day_of_week = (int) ((julian + 2) % 7 + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxDate::julian_to_mdy ()
|
void wxDate::julian_to_mdy ()
|
||||||
{
|
{
|
||||||
long a,b,c,d,e,z,alpha;
|
long a,b,c,d,e,z,alpha;
|
||||||
z = julian+1;
|
z = julian+1;
|
||||||
// dealing with Gregorian calendar reform
|
// dealing with Gregorian calendar reform
|
||||||
if (z < 2299161L)
|
if (z < 2299161L)
|
||||||
a = z;
|
a = z;
|
||||||
else {
|
else {
|
||||||
alpha = (long) ((z-1867216.25) / 36524.25);
|
alpha = (long) ((z-1867216.25) / 36524.25);
|
||||||
a = z + 1 + alpha - alpha/4;
|
a = z + 1 + alpha - alpha/4;
|
||||||
}
|
}
|
||||||
b = ( a > 1721423 ? a + 1524 : a + 1158 );
|
b = ( a > 1721423 ? a + 1524 : a + 1158 );
|
||||||
c = (long) ((b - 122.1) / 365.25);
|
c = (long) ((b - 122.1) / 365.25);
|
||||||
d = (long) (365.25 * c);
|
d = (long) (365.25 * c);
|
||||||
e = (long) ((b - d) / 30.6001);
|
e = (long) ((b - d) / 30.6001);
|
||||||
day = (int)(b - d - (long)(30.6001 * e));
|
day = (int)(b - d - (long)(30.6001 * e));
|
||||||
month = (int)((e < 13.5) ? e - 1 : e - 13);
|
month = (int)((e < 13.5) ? e - 1 : e - 13);
|
||||||
year = (int)((month > 2.5 ) ? (c - 4716) : c - 4715);
|
year = (int)((month > 2.5 ) ? (c - 4716) : c - 4715);
|
||||||
julian_to_wday ();
|
julian_to_wday ();
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxDate::mdy_to_julian (void)
|
void wxDate::mdy_to_julian (void)
|
||||||
{
|
{
|
||||||
int a,b=0;
|
int a,b=0;
|
||||||
int work_month=month, work_day=day, work_year=year;
|
int work_month=month, work_day=day, work_year=year;
|
||||||
// correct for negative year
|
// correct for negative year
|
||||||
if (work_year < 0)
|
if (work_year < 0)
|
||||||
work_year++;
|
work_year++;
|
||||||
if (work_month <= 2)
|
if (work_month <= 2)
|
||||||
{ work_year--; work_month +=12; }
|
{ work_year--; work_month +=12; }
|
||||||
|
|
||||||
// deal with Gregorian calendar
|
// deal with Gregorian calendar
|
||||||
if (work_year*10000. + work_month*100. + work_day >= 15821015.)
|
if (work_year*10000. + work_month*100. + work_day >= 15821015.)
|
||||||
{
|
{
|
||||||
a = (int)(work_year/100.);
|
a = (int)(work_year/100.);
|
||||||
b = 2 - a + a/4;
|
b = 2 - a + a/4;
|
||||||
}
|
}
|
||||||
julian = (long) (365.25*work_year) +
|
julian = (long) (365.25*work_year) +
|
||||||
(long) (30.6001 * (work_month+1)) + work_day + 1720994L + b;
|
(long) (30.6001 * (work_month+1)) + work_day + 1720994L + b;
|
||||||
julian_to_wday ();
|
julian_to_wday ();
|
||||||
}
|
}
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////
|
||||||
@ -341,107 +341,107 @@ void wxDate::mdy_to_julian (void)
|
|||||||
|
|
||||||
wxString wxDate::FormatDate (int type) const
|
wxString wxDate::FormatDate (int type) const
|
||||||
{
|
{
|
||||||
int actualType = type;
|
int actualType = type;
|
||||||
if (actualType == -1)
|
if (actualType == -1)
|
||||||
actualType = DisplayFormat;
|
actualType = DisplayFormat;
|
||||||
|
|
||||||
char buf[40];
|
char buf[40];
|
||||||
|
|
||||||
memset( buf, '\0', sizeof(buf) );
|
memset( buf, '\0', sizeof(buf) );
|
||||||
switch ( actualType )
|
switch ( actualType )
|
||||||
{
|
{
|
||||||
case wxDAY:
|
case wxDAY:
|
||||||
if ( (day_of_week < 1) || (day_of_week > 7) )
|
if ( (day_of_week < 1) || (day_of_week > 7) )
|
||||||
strcpy(buf, _("invalid day"));
|
strcpy(buf, _("invalid day"));
|
||||||
else
|
else
|
||||||
strncpy( buf, _(dayname[day_of_week-1]),
|
strncpy( buf, _(dayname[day_of_week-1]),
|
||||||
(DisplayOptions & wxDATE_ABBR) ? ABBR_LENGTH : 9);
|
(DisplayOptions & wxDATE_ABBR) ? ABBR_LENGTH : 9);
|
||||||
return wxString(buf);
|
return wxString(buf);
|
||||||
|
|
||||||
case wxMONTH:
|
case wxMONTH:
|
||||||
if ( (month < 1) || (month > 12) )
|
if ( (month < 1) || (month > 12) )
|
||||||
strcpy(buf, _("invalid month"));
|
strcpy(buf, _("invalid month"));
|
||||||
else
|
else
|
||||||
strncpy( buf, _(mname[month-1]),
|
strncpy( buf, _(mname[month-1]),
|
||||||
(DisplayOptions & wxDATE_ABBR) ? ABBR_LENGTH : 9);
|
(DisplayOptions & wxDATE_ABBR) ? ABBR_LENGTH : 9);
|
||||||
return wxString(buf);
|
return wxString(buf);
|
||||||
|
|
||||||
case wxFULL:
|
case wxFULL:
|
||||||
if ( (month < 1) || (month > 12) || (day_of_week < 0) ||
|
if ( (month < 1) || (month > 12) || (day_of_week < 0) ||
|
||||||
(day_of_week > 7) )
|
(day_of_week > 7) )
|
||||||
{
|
{
|
||||||
strcpy(buf, _("invalid date"));
|
strcpy(buf, _("invalid date"));
|
||||||
return wxString(buf);
|
return wxString(buf);
|
||||||
}
|
}
|
||||||
strncpy( buf, _(dayname[day_of_week-1]),
|
strncpy( buf, _(dayname[day_of_week-1]),
|
||||||
(DisplayOptions & wxDATE_ABBR) ? ABBR_LENGTH : 9);
|
(DisplayOptions & wxDATE_ABBR) ? ABBR_LENGTH : 9);
|
||||||
strcat( buf, ", ");
|
strcat( buf, ", ");
|
||||||
strncat( buf, _(mname[month-1]),
|
strncat( buf, _(mname[month-1]),
|
||||||
(DisplayOptions & wxDATE_ABBR) ? ABBR_LENGTH : 9);
|
(DisplayOptions & wxDATE_ABBR) ? ABBR_LENGTH : 9);
|
||||||
strcat( buf, " ");
|
strcat( buf, " ");
|
||||||
sprintf( buf+strlen(buf), "%d, %d", day, abs(year) );
|
sprintf( buf+strlen(buf), "%d, %d", day, abs(year) );
|
||||||
if (year < 0)
|
if (year < 0)
|
||||||
strcat(buf,_(" B.C."));
|
strcat(buf,_(" B.C."));
|
||||||
return wxString(buf);
|
return wxString(buf);
|
||||||
|
|
||||||
case wxEUROPEAN:
|
case wxEUROPEAN:
|
||||||
if ( (month < 1) || (month > 12) || (day_of_week < 0) ||
|
if ( (month < 1) || (month > 12) || (day_of_week < 0) ||
|
||||||
(day_of_week > 7) )
|
(day_of_week > 7) )
|
||||||
{
|
{
|
||||||
strcpy(buf, _("invalid date"));
|
strcpy(buf, _("invalid date"));
|
||||||
return wxString(buf);
|
return wxString(buf);
|
||||||
}
|
}
|
||||||
sprintf(buf,"%d ", day);
|
sprintf(buf,"%d ", day);
|
||||||
strncat(buf, _(mname[month-1]),
|
strncat(buf, _(mname[month-1]),
|
||||||
(DisplayOptions & wxDATE_ABBR) ? ABBR_LENGTH : 9);
|
(DisplayOptions & wxDATE_ABBR) ? ABBR_LENGTH : 9);
|
||||||
sprintf( buf+strlen(buf), " %d", abs(year) );
|
sprintf( buf+strlen(buf), " %d", abs(year) );
|
||||||
if (year < 0)
|
if (year < 0)
|
||||||
strcat(buf, _(" B.C."));
|
strcat(buf, _(" B.C."));
|
||||||
return wxString(buf);
|
return wxString(buf);
|
||||||
|
|
||||||
case wxMDY:
|
case wxMDY:
|
||||||
default:
|
default:
|
||||||
if (day==0 || month==0 || year==0)
|
if (day==0 || month==0 || year==0)
|
||||||
strcpy(buf, _("invalid date"));
|
strcpy(buf, _("invalid date"));
|
||||||
else
|
else
|
||||||
sprintf( buf+strlen(buf), "%1d/%1d/%02d", month, day,
|
sprintf( buf+strlen(buf), "%1d/%1d/%02d", month, day,
|
||||||
(DisplayOptions & wxNO_CENTURY) && (abs(year) > 1899)
|
(DisplayOptions & wxNO_CENTURY) && (abs(year) > 1899)
|
||||||
? (abs(year) - (abs(year) / 100 * 100))
|
? (abs(year) - (abs(year) / 100 * 100))
|
||||||
: (abs(year)) );
|
: (abs(year)) );
|
||||||
return wxString(buf);
|
return wxString(buf);
|
||||||
}
|
}
|
||||||
return wxString("");
|
return wxString("");
|
||||||
}
|
}
|
||||||
|
|
||||||
void wxDate::SetFormat( int format )
|
void wxDate::SetFormat( int format )
|
||||||
{
|
{
|
||||||
DisplayFormat = format;
|
DisplayFormat = format;
|
||||||
}
|
}
|
||||||
|
|
||||||
int wxDate::SetOption( int option, bool action )
|
int wxDate::SetOption( int option, bool action )
|
||||||
{
|
{
|
||||||
switch ( option )
|
switch ( option )
|
||||||
{
|
{
|
||||||
case wxNO_CENTURY:
|
case wxNO_CENTURY:
|
||||||
if ( action )
|
if ( action )
|
||||||
DisplayOptions |= wxNO_CENTURY;
|
DisplayOptions |= wxNO_CENTURY;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DisplayOptions &= (~wxNO_CENTURY);
|
DisplayOptions &= (~wxNO_CENTURY);
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
case wxDATE_ABBR:
|
case wxDATE_ABBR:
|
||||||
if ( action )
|
if ( action )
|
||||||
DisplayOptions |= wxDATE_ABBR;
|
DisplayOptions |= wxDATE_ABBR;
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
DisplayOptions &= (~wxDATE_ABBR);
|
DisplayOptions &= (~wxDATE_ABBR);
|
||||||
}
|
}
|
||||||
return 1;
|
return 1;
|
||||||
default:
|
default:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
///////////////////////////////////////////////////////////////
|
///////////////////////////////////////////////////////////////
|
||||||
@ -450,29 +450,29 @@ int wxDate::SetOption( int option, bool action )
|
|||||||
|
|
||||||
long wxDate::GetJulianDate( void ) const
|
long wxDate::GetJulianDate( void ) const
|
||||||
{
|
{
|
||||||
return julian;
|
return julian;
|
||||||
}
|
}
|
||||||
|
|
||||||
int wxDate::GetDayOfYear( void ) const
|
int wxDate::GetDayOfYear( void ) const
|
||||||
{
|
{
|
||||||
wxDate temp( 1, 1, year );
|
wxDate temp( 1, 1, year );
|
||||||
|
|
||||||
return (int) (julian - temp.julian + 1);
|
return (int) (julian - temp.julian + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
bool wxDate::IsLeapYear( void ) const
|
bool wxDate::IsLeapYear( void ) const
|
||||||
{
|
{
|
||||||
return ( (year >= 1582) ?
|
return ( (year >= 1582) ?
|
||||||
(year % 4 == 0 && year % 100 != 0 || year % 400 == 0 ):
|
(year % 4 == 0 && year % 100 != 0 || year % 400 == 0 ):
|
||||||
(year % 4 == 0) );
|
(year % 4 == 0) );
|
||||||
}
|
}
|
||||||
|
|
||||||
// Version 4.0 Extension to Public Interface - CDP
|
// Version 4.0 Extension to Public Interface - CDP
|
||||||
|
|
||||||
wxDate& wxDate::Set()
|
wxDate& wxDate::Set()
|
||||||
{
|
{
|
||||||
//#ifdef __WXMSW__
|
//#ifdef __WXMSW__
|
||||||
#if 0
|
#if 0
|
||||||
struct _dosdate_t sDate;
|
struct _dosdate_t sDate;
|
||||||
_dos_getdate(&sDate);
|
_dos_getdate(&sDate);
|
||||||
@ -496,9 +496,9 @@ wxDate& wxDate::Set()
|
|||||||
}
|
}
|
||||||
|
|
||||||
wxDate& wxDate::Set(
|
wxDate& wxDate::Set(
|
||||||
int nMonth,
|
int nMonth,
|
||||||
int nDay,
|
int nDay,
|
||||||
int nYear)
|
int nYear)
|
||||||
{
|
{
|
||||||
month = nMonth;
|
month = nMonth;
|
||||||
year = nYear < 0 ? 9999 : nYear;
|
year = nYear < 0 ? 9999 : nYear;
|
||||||
@ -506,16 +506,16 @@ wxDate& wxDate::Set(
|
|||||||
day = nDay < GetDaysInMonth() ? nDay : GetDaysInMonth();
|
day = nDay < GetDaysInMonth() ? nDay : GetDaysInMonth();
|
||||||
|
|
||||||
mdy_to_julian();
|
mdy_to_julian();
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
wxDate &
|
wxDate &
|
||||||
wxDate::Set(long j)
|
wxDate::Set(long j)
|
||||||
{
|
{
|
||||||
julian = j;
|
julian = j;
|
||||||
|
|
||||||
julian_to_mdy();
|
julian_to_mdy();
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -562,12 +562,12 @@ wxDate& wxDate::AddMonths(int nCount)
|
|||||||
if (month < 1) {
|
if (month < 1) {
|
||||||
month = 12;
|
month = 12;
|
||||||
year--;
|
year--;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (month > 12) {
|
if (month > 12) {
|
||||||
month = 1;
|
month = 1;
|
||||||
year++;
|
year++;
|
||||||
}
|
}
|
||||||
mdy_to_julian();
|
mdy_to_julian();
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
@ -581,10 +581,10 @@ wxDate& wxDate::AddYears(int nCount)
|
|||||||
|
|
||||||
int wxDate::GetWeekOfMonth()
|
int wxDate::GetWeekOfMonth()
|
||||||
{
|
{
|
||||||
// Abs day includes the days from previous month that fills up
|
// Abs day includes the days from previous month that fills up
|
||||||
// the begin. of the week.
|
// the begin. of the week.
|
||||||
int nAbsDay = day + GetFirstDayOfMonth()-1;
|
int nAbsDay = day + GetFirstDayOfMonth()-1;
|
||||||
return (nAbsDay-GetDayOfWeek())/7 + 1;
|
return (nAbsDay-GetDayOfWeek())/7 + 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int wxDate::GetWeekOfYear()
|
int wxDate::GetWeekOfYear()
|
||||||
@ -625,32 +625,32 @@ wxString wxDate::GetDayOfWeekName()
|
|||||||
|
|
||||||
bool wxDate::IsBetween(const wxDate& first, const wxDate& second) const
|
bool wxDate::IsBetween(const wxDate& first, const wxDate& second) const
|
||||||
{
|
{
|
||||||
return (julian >= first.julian && julian <= second.julian);
|
return (julian >= first.julian && julian <= second.julian);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This function is from NIHCL
|
// This function is from NIHCL
|
||||||
wxDate wxDate::Previous(int dayOfWeek) const
|
wxDate wxDate::Previous(int dayOfWeek) const
|
||||||
{
|
{
|
||||||
int this_day_Of_Week, desired_day_Of_Week;
|
int this_day_Of_Week, desired_day_Of_Week;
|
||||||
long j;
|
long j;
|
||||||
|
|
||||||
// Set the desired and current day of week to start at 0 (Monday)
|
// Set the desired and current day of week to start at 0 (Monday)
|
||||||
// and end at 6 (Sunday).
|
// and end at 6 (Sunday).
|
||||||
|
|
||||||
desired_day_Of_Week = dayOfWeek - 1; // These functions return a value
|
desired_day_Of_Week = dayOfWeek - 1; // These functions return a value
|
||||||
this_day_Of_Week = GetDayOfWeek() - 1; // from 1-7. Subtract 1 for 0-6.
|
this_day_Of_Week = GetDayOfWeek() - 1; // from 1-7. Subtract 1 for 0-6.
|
||||||
j = julian;
|
j = julian;
|
||||||
|
|
||||||
// Have to determine how many days difference from current day back to
|
// Have to determine how many days difference from current day back to
|
||||||
// desired, if any. Special calculation under the 'if' statement to
|
// desired, if any. Special calculation under the 'if' statement to
|
||||||
// effect the wraparound counting from Monday (0) back to Sunday (6).
|
// effect the wraparound counting from Monday (0) back to Sunday (6).
|
||||||
|
|
||||||
if (desired_day_Of_Week > this_day_Of_Week)
|
if (desired_day_Of_Week > this_day_Of_Week)
|
||||||
this_day_Of_Week += 7 - desired_day_Of_Week;
|
this_day_Of_Week += 7 - desired_day_Of_Week;
|
||||||
else
|
else
|
||||||
this_day_Of_Week -= desired_day_Of_Week;
|
this_day_Of_Week -= desired_day_Of_Week;
|
||||||
j -= this_day_Of_Week; // Adjust j to set it at the desired day of week.
|
j -= this_day_Of_Week; // Adjust j to set it at the desired day of week.
|
||||||
return wxDate(j);
|
return wxDate(j);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -274,12 +274,6 @@ bool wxFileExists(const char *pszFileName)
|
|||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bool wxDirExists( const wxString& dir )
|
|
||||||
{
|
|
||||||
struct stat st;
|
|
||||||
return ((stat(dir, &st) != -1) && S_ISDIR(st.st_mode) ? TRUE : FALSE);
|
|
||||||
}
|
|
||||||
|
|
||||||
bool
|
bool
|
||||||
wxIsAbsolutePath (const wxString& filename)
|
wxIsAbsolutePath (const wxString& filename)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user