Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Kapslar in den DATE datatyp som används i OLE-automatisering.
Syntax
class COleDateTime
Medlemmar
Offentliga konstruktorer
| Namn | Beskrivning |
|---|---|
| COleDateTime::COleDateTime | Konstruerar ett COleDateTime objekt. |
Offentliga metoder
| Namn | Beskrivning |
|---|---|
| COleDateTime::Format | Genererar en formaterad strängrepresentation av ett COleDateTime objekt. |
| COleDateTime::GetAsDBTIMESTAMP | Anropa den här metoden för att hämta tiden i COleDateTime objektet som en DBTIMESTAMP datastruktur. |
| COleDateTime::GetAsSystemTime | Anropa den här metoden för att hämta tiden i COleDateTime objektet som en SYSTEMTIME-datastruktur . |
| COleDateTime::GetAsUDATE | Anropa den här metoden för att hämta tiden i COleDateTime som en UDATE datastruktur. |
| COleDateTime::GetCurrentTime | Skapar ett COleDateTime objekt som representerar den aktuella tiden (statisk medlemsfunktion). |
| COleDateTime::GetDay | Returnerar den dag som det här COleDateTime objektet representerar (1–31). |
| COleDateTime::GetDayOfWeek | Returnerar veckodagen som det här COleDateTime objektet representerar (söndag = 1). |
| COleDateTime::GetDayOfYear | Returnerar den dag på året som det här COleDateTime objektet representerar (1 januari = 1). |
| COleDateTime::GetHour | Returnerar den timme som det här COleDateTime objektet representerar (0–23). |
| COleDateTime::GetMinute | Returnerar minuten som det här COleDateTime objektet representerar (0–59). |
| COleDateTime::GetMonth | Returnerar den månad som det här COleDateTime objektet representerar (1–12). |
| COleDateTime::GetSecond | Returnerar det andra objektet som representerar COleDateTime (0–59). |
| COleDateTime::GetStatus | Hämtar statusen (giltigheten) för det här COleDateTime objektet. |
| COleDateTime::GetYear | Returnerar det år som det här COleDateTime objektet representerar. |
| COleDateTime::P arseDateTime | Läser ett datum/tid-värde från en sträng och anger värdet COleDateTimeför . |
| COleDateTime::SetDate | Anger värdet för det här COleDateTime objektet till det angivna värdet endast för datum. |
| COleDateTime::SetDateTime | Anger värdet för det här COleDateTime objektet till det angivna datum-/tidsvärdet. |
| COleDateTime::SetStatus | Anger status (giltighet) för det här COleDateTime objektet. |
| COleDateTime::SetTime | Anger värdet för det här COleDateTime objektet till det angivna värdet för endast tid. |
Offentliga operatörer
| Namn | Beskrivning |
|---|---|
| COleDateTime::operator ==, COleDateTime::operator <osv. | Jämför två COleDateTime värden. |
| COleDateTime::operator +, COleDateTime::operator - | Lägg till och subtrahera COleDateTime värden. |
| COleDateTime::operator +=, COleDateTime::operator -= | Lägg till och subtrahera ett COleDateTime värde från det här COleDateTime objektet. |
| COleDateTime::operator = | Kopierar ett COleDateTime värde. |
| COleDateTime::operator DATE, COleDateTime::operator Date* | Konverterar ett COleDateTime värde till en DATE eller en DATE*. |
Medlemmar i offentliga data
| Namn | Beskrivning |
|---|---|
| COleDateTime::m_dt | Innehåller det underliggande DATE objektet COleDateTime . |
| COleDateTime::m_status | Innehåller status för det här COleDateTime objektet. |
Anmärkningar
COleDateTime har ingen basklass.
Det är en av de möjliga typerna för VARIANT-datatypen för OLE-automatisering. Ett COleDateTime värde representerar ett absolut datum- och tidsvärde.
Typen DATE implementeras som ett flyttalsvärde. Dagar mäts från 30 december 1899 vid midnatt. I följande tabell visas några datum och deras associerade värden:
| Datum | Värde |
|---|---|
| 29 december 1899, midnatt | -1.0 |
| 29 december 1899, 06.00 | -1.25 |
| 30 december 1899, midnatt | 0,0 |
| 31 december 1899, midnatt | 1.0 |
| 1 januari 1900, 06.00 | 2,25 |
Försiktighet
Även om dagsvärdena i tabellen ovan blir negativa före midnatt den 30 december 1899, gör inte tidsvärdena det. Till exempel representeras 6:00 AM alltid av ett bråkvärde 0,25 oavsett om heltalet som representerar dagen är positivt (efter 30 december 1899) eller negativt (före den 30 december 1899). Det innebär att en enkel flyttalsjämförelse felaktigt skulle sortera en COleDateTime som representerar 06:00 den 12/29/1899 som senare än en som representerar 07:00 på samma dag.
Klassen COleDateTime hanterar datum från 1 januari 100 till 31 december 9999. Klassen använder den gregorianska kalendern. Den COleDateTime stöder inte Julian-datum.
COleDateTime ignorerar sommartid. (Se Datum och tid: Automation Support.)
Anmärkning
Du kan använda %y formatet för att hämta ett tvåsiffrigt år endast för datum från och med 1900. Om du använder %y formatet på ett datum före 1900 genererar koden ett ASSERT-fel.
Den här typen används också för att representera endast datum- eller tidsvärden. Enligt konventionen används datum 0 (30 december 1899) för tidsvärden och tiden 00:00 (midnatt) används för endast datumvärden.
Om du skapar ett COleDateTime objekt med ett datum som är mindre än 100 godkänns datumet, men efterföljande anrop till GetYear, GetMonth, GetDay, GetHour, GetMinuteoch GetSecond misslyckas och returnerar -1. Tidigare kunde du använda tvåsiffriga datum, men datumen måste vara 100 eller större i MFC 4.2 och senare.
För att undvika problem anger du ett fyrsiffrigt datum. Till exempel:
COleDateTime mytime(1996, 1, 1, 0, 0, 0);
Grundläggande aritmetiska åtgärder för COleDateTime värdena använder den tillhörande klassen COleDateTimeSpan.
COleDateTimeSpan värden definierar ett tidsintervall. Relationen mellan dessa klasser liknar den mellan CTime och CTimeSpan.
Mer information om klasserna COleDateTime och COleDateTimeSpan finns i artikeln Datum och tid: Automation Support.
Kravspecifikation
Rubrik: ATLComTime.h
COleDateTime-relationsoperatorer
Jämförelseoperatorer.
bool operator==(const COleDateTime& date) const throw();
bool operator!=(const COleDateTime& date) const throw();
bool operator<(const COleDateTime& date) const throw();
bool operator>(const COleDateTime& date) const throw();
bool operator<=(const COleDateTime& date) const throw();
bool operator>=(const COleDateTime& date) const throw();
Parameterar
datum
Det COleDateTime objekt som ska jämföras.
Anmärkningar
Anmärkning
En ATLASSERT inträffar om någon av de två operanderna är ogiltig.
Exempel
COleDateTime dateOne(1995, 3, 15, 12, 0, 0); // 15 March 1995 12 noon
COleDateTime dateTwo(dateOne); // 15 March 1995 12 noon
BOOL b;
b = dateOne == dateTwo; // TRUE
b = dateOne < dateTwo; // FALSE, same value
b = dateOne > dateTwo; // FALSE, same value
b = dateOne <= dateTwo; // TRUE, same value
b = dateOne >= dateTwo; // TRUE, same value
dateTwo.SetStatus(COleDateTime::invalid);
b = dateOne == dateTwo; // FALSE, different status
b = dateOne != dateTwo; // TRUE, different status
Operatorerna >=, <=, >, och <, kommer att kontrollera om COleDateTime objektet är inställt på null.
VARIANT v = {};
v.vt = VT_NULL;
COleDateTime t1(v);
COleDateTime t2(v);
t1 = t1 + t2;
COleDateTime::COleDateTime
Konstruerar ett COleDateTime objekt.
COleDateTime() throw();
COleDateTime(const VARIANT& varSrc) throw();
COleDateTime(DATE dtSrc) throw();
COleDateTime(time_t timeSrc) throw();
COleDateTime(__time64_t timeSrc) throw();
COleDateTime(const SYSTEMTIME& systimeSrc) throw();
COleDateTime(const FILETIME& filetimeSrc) throw();
COleDateTime(int nYear,
int nMonth,
int nDay,
int nHour,
int nMin,
int nSec) throw();
COleDateTime(WORD wDosDate,
WORD wDosTime) throw();
COleDateTime(const DBTIMESTAMP& timeStamp) throw();
Parameterar
dateSrc
Ett befintligt COleDateTime objekt som ska kopieras till det nya COleDateTime objektet.
varSrc
En befintlig VARIANT datastruktur (eventuellt ett COleVariant objekt) som ska konverteras till ett datum-/tidsvärde (VT_DATE) och kopieras till det nya COleDateTime objektet.
dtSrc
Ett datum/tid-värde (DATE) som ska kopieras till det nya COleDateTime objektet.
timeSrc
Ett time_t eller __time64_t -värde som ska konverteras till ett datum-/tidsvärde och kopieras till det nya COleDateTime objektet.
systimeSrc
En SYSTEMTIME struktur som ska konverteras till ett datum/tid-värde och kopieras till det nya COleDateTime objektet.
filetimeSrc
En FILETIME struktur som ska konverteras till ett datum/tid-värde och kopieras till det nya COleDateTime objektet. A FILETIME använder Universal Coordinated Time (UTC), så om du passerar en lokal tid i strukturen blir dina resultat felaktiga. Mer information finns i Filtider i Windows SDK.
nYear, nMonth, nDay, nHour, nMin, nSec
Ange datum- och tidsvärdena som ska kopieras till det nya COleDateTime objektet.
wDosDate, wDosTime
MS-DOS datum- och tidsvärden som ska konverteras till ett datum-/tidsvärde och kopieras till det nya COleDateTime objektet.
Tidsstämpel
En referens till en DBTimeStamp-struktur som innehåller den aktuella lokala tiden.
Anmärkningar
Alla dessa konstruktorer skapar nya COleDateTime objekt som initierats till det angivna värdet. I följande tabell visas giltiga intervall för varje datum- och tidskomponent:
| Datum/tid-komponent | Giltigt intervall |
|---|---|
| år | 100 - 9999 |
| månad | 0 - 12 |
| dag | 0 - 31 |
| timme | 0 - 23 |
| minut | 0 - 59 |
| andra | 0 - 59 |
Observera att den faktiska övre gränsen för dagkomponenten varierar beroende på komponenterna månad och år. Mer information finns i medlemsfunktionerna SetDate eller SetDateTime .
Följande är en kort beskrivning av varje konstruktor:
COleDateTime() Konstruerar ettCOleDateTimeobjekt som initierats till 0 (midnatt, 30 december 1899).COleDateTime(dateSrc) Konstruerar ettCOleDateTimeobjekt från ett befintligtCOleDateTimeobjekt.COleDateTime(varSrc) Konstruerar ettCOleDateTimeobjekt. Försöker konvertera en struktur eller ettVARIANTCOleVariant-objekt till ett datum-/tidsvärde (VT_DATE). Om konverteringen lyckas kopieras det konverterade värdet till det nyaCOleDateTimeobjektet. Om det inte är det anges objektetsCOleDateTimevärde till 0 (midnatt, 30 december 1899) och dess status är ogiltig.COleDateTime(dtSrc) Konstruerar ettCOleDateTimeobjekt från ettDATEvärde.COleDateTime(timeSrc) Konstruerar ettCOleDateTimeobjekt från etttime_tvärde.COleDateTime(systimeSrc) Konstruerar ettCOleDateTimeobjekt från ettSYSTEMTIMEvärde.COleDateTime(filetimeSrc) Konstruerar ettCOleDateTimeobjekt från ettFILETIMEvärde. . AFILETIMEanvänder Universal Coordinated Time (UTC), så om du passerar en lokal tid i strukturen blir dina resultat felaktiga. Mer information finns i Filtider i Windows SDK.COleDateTime(nYear,nMonth,nDay,nHour,nMin,nSec) Konstruerar ettCOleDateTimeobjekt från de angivna numeriska värdena.COleDateTime(wDosDate,wDosTime) Konstruerar ettCOleDateTimeobjekt från de angivna MS-DOS datum- och tidsvärdena.
Mer information om time_t datatypen finns i tidsfunktionen i Run-Time-biblioteksreferensen.
Mer information finns i SYSTEMTIME- och FILETIME-strukturerna i Windows SDK.
Mer information om gränserna för COleDateTime värden finns i artikeln Datum och tid: Automation Support.
Anmärkning
Konstruktorn som använder DBTIMESTAMP parametern är endast tillgänglig när OLEDB.h ingår.
Exempel
time_t osBinaryTime; // C run-time time (defined in <time.h>)
time(&osBinaryTime); // Get the current time from the
// operating system.
COleDateTime time1; // initialized to 00:00am, 30 December 1899
// (and m_nStatus is valid!)
COleDateTime time2 = time1; // Copy constructor
COleDateTime time3(osBinaryTime); // from time_t
COleDateTime time4(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
SYSTEMTIME sysTime; // Win32 time information
GetSystemTime(&sysTime);
COleDateTime time5(sysTime);
COleDateTime::Format
Skapar en formaterad representation av datum/tid-värdet.
CString Format(DWORD dwFlags = 0, LCID lcid = LANG_USER_DEFAULT) const;
CString Format(LPCTSTR lpszFormat) const;
CString Format(UINT nFormatID) const;
Parameterar
dwFlags
Anger någon av följande nationella flaggor:
LOCALE_NOUSEROVERRIDE Använd systemets standardinställningar för nationella inställningar i stället för anpassade användarinställningar.
VAR_TIMEVALUEONLY Ignorera datumdelen under parsningen.
VAR_DATEVALUEONLY Ignorera tidsdelen under parsningen.
lcid
Anger språkvariant-ID som ska användas för konverteringen. Mer information om språkidentifierare finns i Språkidentifierare.
lpszFormat
En formateringssträng som liknar formateringssträngen printf . Varje formateringskod, som föregås av ett procenttecken (%) ersätts av motsvarande COleDateTime komponent. Andra tecken i formateringssträngen kopieras oförändrade till den returnerade strängen. Mer information finns i körningsfunktionen strftime. Värdet och innebörden av formateringskoderna för Format är:
%HTimmar under den aktuella dagen%MMinuter i den aktuella timmen%SSekunder i den aktuella minuten%%Procenttecken
nFormatID
Resurs-ID:t för formatkontrollsträngen.
Returvärde
En CString som innehåller det formaterade datum-/tidsvärdet.
Anmärkningar
Om statusen för det här COleDateTime objektet är null är returvärdet en tom sträng. Om statusen är ogiltig anges retursträngen av strängresursen ATL_IDS_DATETIME_INVALID.
En kort beskrivning av de tre formulären för den här funktionen följer:
Format( dwFlags, lcid)
Det här formuläret formaterar värdet med hjälp av språkspecifikationerna (språk-ID:t) för datum och tid. Med standardparametrarna skriver det här formuläret ut datum och tid, såvida inte tidsdelen är 0 (midnatt), i så fall skrivs bara datumet ut, eller datumdelen är 0 (30 december 1899), i vilket fall den bara skriver ut tiden. Om datum/tid-värdet är 0 (30 december 1899, midnatt) skrivs det här formuläret med standardparametrarna ut midnatt.
Format( lpszFormat)
Det här formuläret formaterar värdet med hjälp av formatsträngen som innehåller särskilda formateringskoder som föregås av ett procenttecken (%), som i printf. Formateringssträngen skickas som en parameter till funktionen. Mer information om formateringskoderna finns i strftime, wcsftime i Run-Time-biblioteksreferensen.
Format( nFormatID)
Det här formuläret formaterar värdet med hjälp av formatsträngen som innehåller särskilda formateringskoder som föregås av ett procenttecken (%), som i printf. Formateringssträngen är en resurs. ID:t för den här strängresursen skickas som parameter. Mer information om formateringskoderna finns i strftime, wcsftime i Run-Time-biblioteksreferensen.
Exempel
COleDateTime t(1999, 3, 19, 22, 15, 0);
CString str = t.Format(_T("%A, %B %d, %Y"));
ASSERT(str == _T("Friday, March 19, 1999"));
COleDateTime::GetAsDBTIMESTAMP
Anropa den här metoden för att hämta tiden i COleDateTime objektet som en DBTIMESTAMP datastruktur.
bool GetAsDBTIMESTAMP(DBTIMESTAMP& timeStamp) const throw();
Parameterar
Tidsstämpel
En referens till en DBTimeStamp-struktur .
Returvärde
Nonzero om det lyckas; annars 0.
Anmärkningar
Lagrar den resulterande tiden i den refererade timeStamp-strukturen . Datastrukturen DBTIMESTAMP som initieras av den här funktionen har dess fraction medlem inställd på noll.
Exempel
COleDateTime t = COleDateTime::GetCurrentTime();
DBTIMESTAMP ts;
t.GetAsDBTIMESTAMP(ts); // retrieves the time in t into the ts structure
COleDateTime::GetAsSystemTime
Anropa den här metoden för att hämta tiden i COleDateTime objektet som en SYSTEMTIME datastruktur.
bool GetAsSystemTime(SYSTEMTIME& sysTime) const throw();
Parameterar
sysTime
En referens till en SYSTEMTIME-struktur för att ta emot det konverterade datum-/tidsvärdet från COleDateTime objektet.
Returvärde
Returnerar TRUE om det lyckas. FALSE om konverteringen misslyckas, eller om objektet COleDateTime är NULL eller ogiltigt.
Anmärkningar
GetAsSystemTime lagrar den resulterande tiden i det refererade sysTime-objektet . Datastrukturen SYSTEMTIME som initieras av den här funktionen har dess wMilliseconds medlem inställd på noll.
Mer information om statusinformationen som finns i ett COleDateTime objekt finns i GetStatus.
COleDateTime::GetAsUDATE
Anropa den här metoden för att hämta tiden i COleDateTime objektet som en UDATE datastruktur.
bool GetAsUDATE(UDATE& uDate) const throw();
Parameterar
uDate
En referens till en UDATE struktur för att ta emot det konverterade datum-/tidsvärdet från COleDateTime objektet.
Returvärde
Returnerar TRUE om det lyckas. FALSE om konverteringen misslyckas, eller om objektet COleDateTime är NULL eller ogiltigt.
Anmärkningar
En UDATE struktur representerar ett "uppackat" datum.
COleDateTime::GetCurrentTime
Anropa den här statiska medlemsfunktionen för att returnera det aktuella datum-/tidsvärdet.
static COleDateTime WINAPI GetCurrentTime() throw();
Exempel
// example for COleDateTime::GetCurrentTime
COleDateTime dateTest;
// dateTest value = midnight 30 December 1899
dateTest = COleDateTime::GetCurrentTime();
// dateTest value = current date and time
// a second example for COleDateTime::GetCurrentTime
// Since GetCurrentTime() is a static member, you can use it in
// a constructor:
COleDateTime t1 = COleDateTime::GetCurrentTime();
COleDateTime t2(COleDateTime::GetCurrentTime());
// Or in a normal assignment operator
COleDateTime t3;
t3 = COleDateTime::GetCurrentTime();
// or even in an expression
if (COleDateTime::GetCurrentTime().GetDayOfWeek() == 6)
_tprintf(_T("Thank Goodness it is Friday!\n\n"));
COleDateTime::GetDay
Hämtar den dag i månaden som representeras av det här datum-/tidsvärdet.
int GetDay() const throw();
Returvärde
Den dag i månaden som representeras av värdet för det här COleDateTime objektet eller COleDateTime::error om dagen inte kunde hämtas.
Anmärkningar
Giltigt returvärdesintervall mellan 1 och 31.
Information om andra medlemsfunktioner som frågar efter värdet för det här COleDateTime objektet finns i följande medlemsfunktioner:
Exempel
COleDateTime t(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
ASSERT(t.GetDay() == 19);
ASSERT(t.GetMonth() == 3);
ASSERT(t.GetYear() == 1999);
COleDateTime::GetDayOfWeek
Hämtar veckodagen som representeras av det här datum-/tidsvärdet.
int GetDayOfWeek() const throw();
Returvärde
Veckodagen som representeras av värdet för det här COleDateTime objektet eller COleDateTime::error om veckodagen inte kunde hämtas.
Anmärkningar
Giltiga returvärden sträcker sig mellan 1 och 7, där 1=söndag, 2=måndag och så vidare.
Information om andra medlemsfunktioner som frågar efter värdet för det här COleDateTime objektet finns i följande medlemsfunktioner:
Exempel
COleDateTime t(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
ASSERT(t.GetDayOfWeek() == 6); // it's a Friday
COleDateTime::GetDayOfYear
Hämtar den dag på året som representeras av det här datum-/tidsvärdet.
int GetDayOfYear() const throw();
Returvärde
Den dag på året som representeras av värdet för det här COleDateTime objektet eller COleDateTime::error om dagen på året inte kunde erhållas.
Anmärkningar
Giltiga returvärden sträcker sig mellan 1 och 366, där 1 januari = 1.
Information om andra medlemsfunktioner som frågar efter värdet för det här COleDateTime objektet finns i följande medlemsfunktioner:
Exempel
COleDateTime t(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
ASSERT(t.GetDayOfYear() == 78); // 78th day of that year
COleDateTime::GetHour
Hämtar den timme som representeras av det här datum-/tidsvärdet.
int GetHour() const throw();
Returvärde
Timmen som representeras av värdet för det här COleDateTime objektet eller COleDateTime::error om timmen inte kunde hämtas.
Anmärkningar
Giltigt returvärdesintervall mellan 0 och 23.
Information om andra medlemsfunktioner som frågar efter värdet för det här COleDateTime objektet finns i följande medlemsfunktioner:
Exempel
COleDateTime t(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
ASSERT(t.GetSecond() == 0);
ASSERT(t.GetMinute() == 15);
ASSERT(t.GetHour() == 22);
COleDateTime::GetMinute
Hämtar minuten som representeras av det här datum-/tidsvärdet.
int GetMinute() const throw();
Returvärde
Minuten som representeras av värdet för det här COleDateTime objektet eller COleDateTime::error om minuten inte kunde hämtas.
Anmärkningar
Giltigt returvärdesintervall mellan 0 och 59.
Information om andra medlemsfunktioner som frågar efter värdet för det här COleDateTime objektet finns i följande medlemsfunktioner:
Exempel
Se exemplet för GetHour.
COleDateTime::GetMonth
Hämtar den månad som representeras av det här datum-/tidsvärdet.
int GetMonth() const throw();
Returvärde
Månaden som representeras av värdet för det här COleDateTime objektet eller COleDateTime::error om månaden inte kunde hämtas.
Anmärkningar
Giltigt returvärdesintervall mellan 1 och 12.
Information om andra medlemsfunktioner som frågar efter värdet för det här COleDateTime objektet finns i följande medlemsfunktioner:
Exempel
Se exemplet för GetDay.
COleDateTime::GetSecond
Hämtar den andra som representeras av det här datum-/tidsvärdet.
int GetSecond() const throw();
Returvärde
Den andra representeras av värdet för det här COleDateTime objektet eller COleDateTime::error om det andra inte kunde hämtas.
Anmärkningar
Giltigt returvärdesintervall mellan 0 och 59.
Anmärkning
Klassen COleDateTime stöder inte skottsekunder.
Mer information om implementeringen för COleDateTimefinns i artikeln Datum och tid: Automation Support.
Information om andra medlemsfunktioner som frågar efter värdet för det här COleDateTime objektet finns i följande medlemsfunktioner:
Exempel
Se exemplet för GetHour.
COleDateTime::GetStatus
Hämtar status (giltighet) för ett visst COleDateTime objekt.
DateTimeStatus GetStatus() const throw();
Returvärde
Returnerar status för det här COleDateTime värdet. Om du anropar GetStatus ett COleDateTime objekt som har konstruerats med standardvärdet returneras det giltigt. Om du anropar GetStatus ett COleDateTime objekt som initierats med konstruktorn inställt på null GetStatus returneras null.
Anmärkningar
Returvärdet definieras av den DateTimeStatus uppräknade typen, som definieras i COleDateTime klassen.
enum DateTimeStatus
{
error = -1,
valid = 0,
invalid = 1, // Invalid date (out of range, etc.)
null = 2, // Literally has no value
};
En kort beskrivning av dessa statusvärden finns i följande lista:
COleDateTime::errorAnger att ett fel uppstod när en del av datum-/tidsvärdet skulle hämtas.COleDateTime::validAnger att det härCOleDateTimeobjektet är giltigt.COleDateTime::invalidAnger att det härCOleDateTimeobjektet är ogiltigt, dvs. dess värde kan vara felaktigt.COleDateTime::nullAnger att det härCOleDateTimeobjektet är null, d.v.s. att inget värde har angetts för det här objektet. (Det här är "null" i databaskänslan "har inget värde", i motsats till C++ NULL.)
Statusen för ett COleDateTime objekt är ogiltig i följande fall:
Om värdet anges från ett värde eller
VARIANTettCOleVariantvärde som inte kunde konverteras till ett datum-/tidsvärde.Om dess värde anges från ett
time_t,SYSTEMTIMEellerFILETIME-värde som inte kunde konverteras till ett giltigt datum-/tidsvärde.Om värdet anges av
SetDateTimemed ogiltiga parametervärden.Om det här objektet har drabbats av ett spill eller underflöde under en aritmisk tilldelningsåtgärd, nämligen
+=eller-=.Om ett ogiltigt värde har tilldelats det här objektet.
Om statusen för det här objektet uttryckligen har angetts till ogiltig med hjälp av
SetStatus.
Mer information om de åtgärder som kan ange statusen som ogiltig finns i följande medlemsfunktioner:
Mer information om gränserna för COleDateTime värden finns i artikeln Datum och tid: Automation Support.
Exempel
COleDateTime t;
// this one is a leap year
t.SetDateTime(2000, 2, 29, 5, 0, 0);
ASSERT(t.GetStatus() == COleDateTime::valid);
// this date isn't valid
t.SetDateTime(1925, 2, 30, 5, 0, 0);
ASSERT(t.GetStatus() == COleDateTime::invalid);
// the only way to set null is to set null!
t.SetStatus(COleDateTime::null);
ASSERT(t.GetStatus() == COleDateTime::null);
COleDateTime::GetYear
Hämtar det år som representeras av det här datum-/tidsvärdet.
int GetYear() const throw();
Returvärde
Året som representeras av värdet för det här COleDateTime objektet eller COleDateTime::error om året inte kunde erhållas.
Anmärkningar
Giltiga returvärden sträcker sig mellan 100 och 9999, vilket inkluderar århundradet.
Information om andra medlemsfunktioner som frågar efter värdet för det här COleDateTime objektet finns i följande medlemsfunktioner:
Mer information om gränserna för COleDateTime värden finns i artikeln Datum och tid: Automation Support.
Exempel
Se exemplet för GetDay.
COleDateTime::m_dt
Den underliggande DATE strukturen för det här COleDateTime objektet.
DATE m_dt;
Anmärkningar
Försiktighet
Om du ändrar värdet i objektet DATE som används av pekaren som returneras av den här funktionen ändras värdet för det här COleDateTime objektet. Det ändrar inte statusen för det här COleDateTime objektet.
Mer information om implementeringen av DATE objektet finns i artikeln Datum och tid: Automation Support.
COleDateTime::m_status
Innehåller status för det här COleDateTime objektet.
DateTimeStatus m_status;
Anmärkningar
Typen av den här datamedlemmen är den uppräknade typen DateTimeStatus, som definieras i COleDateTime klassen. Mer information finns i COleDateTime::GetStatus.
Försiktighet
Den här datamedlemmen är avsedd för avancerade programmeringssituationer. Du bör använda de infogade medlemsfunktionerna GetStatus och SetStatus. Se SetStatus mer information om hur du uttryckligen anger den här datamedlemmen.
COleDateTime::operator =
Kopierar ett COleDateTime värde.
COleDateTime& operator=(const VARIANT& varSrc) throw();
COleDateTime& operator=(DATE dtSrc) throw();
COleDateTime& operator=(const time_t& timeSrc) throw();
COleDateTime& operator=(const __time64_t& timeSrc) throw();
COleDateTime& operator=(const SYSTEMTIME& systimeSrc) throw();
COleDateTime& operator=(const FILETIME& filetimeSrc) throw();
COleDateTime& operator=(const UDATE& uDate) throw();
Anmärkningar
Dessa överlagrade tilldelningsoperatorer kopierar källvärdet för datum/tid till det här COleDateTime objektet. En kort beskrivning av var och en av dessa överlagrade tilldelningsoperatorer följer:
operator =(
dateSrc) Värdet och statusen för operand kopieras till det härCOleDateTimeobjektet.operator =(varSrc) Om konverteringen av VARIANT-värdet (eller COleVariant-objektet ) till ett datum/tid (VT_DATE) lyckas kopieras det konverterade värdet till det här
COleDateTimeobjektet och dess status är inställd på giltig. Om konverteringen inte lyckas anges värdet för det här objektet till noll (30 december 1899, midnatt) och dess status är ogiltig.operator =(
dtSrc) VärdetDATEkopieras till det härCOleDateTimeobjektet och dess status är inställd på giltig.operator =(
timeSrc) Eller-värdettime_t__time64_tkonverteras och kopieras till det härCOleDateTimeobjektet. Om konverteringen lyckas är statusen för det här objektet inställd på giltig. om det misslyckas är det inställt på ogiltigt.operator =(systimeSrc)SYSTEMTIME-värdet konverteras och kopieras till det här
COleDateTimeobjektet. Om konverteringen lyckas är statusen för det här objektet inställd på giltig. om det misslyckas är det inställt på ogiltigt.operator =(
uDate) VärdetUDATEkonverteras och kopieras till det härCOleDateTimeobjektet. Om konverteringen lyckas är statusen för det här objektet inställd på giltig. om det misslyckas är det inställt på ogiltigt. EnUDATEstruktur representerar ett "uppackat" datum. Mer information finns i funktionen VarDateFromUdate.operator =(
filetimeSrc)FILETIME-värdet konverteras och kopieras till det härCOleDateTimeobjektet. Om konverteringen lyckas är statusen för det här objektet inställd på giltig. annars är den inställd på ogiltig.FILETIMEanvänder Universal Coordinated Time (UTC), så om du skickar en UTC-tid i strukturen konverteras dina resultat från UTC-tid till lokal tid och lagras som varianttid. Det här beteendet är detsamma som i Visual C++ 6.0 och Visual C++.NET 2003 SP2. Mer information finns i Filtider i Windows SDK.
Mer information finns i posten VARIANT i Windows SDK.
Mer information om time_t datatypen finns i tidsfunktionen i Run-Time-biblioteksreferensen.
Mer information finns i SYSTEMTIME- och FILETIME-strukturerna i Windows SDK.
Mer information om gränserna för COleDateTime värden finns i artikeln Datum och tid: Automation Support.
COleDateTime::operator +, -
Lägg till och subtrahera ColeDateTime värden.
COleDateTime operator+(COleDateTimeSpan dateSpan) const throw();
COleDateTime operator-(COleDateTimeSpan dateSpan) const throw();
COleDateTimeSpan operator-(const COleDateTime& date) const throw();
Anmärkningar
COleDateTime objekt representerar absoluta tider.
COleDateTimeSpan-objekt representerar relativa tider. Med de två första operatorerna kan du lägga till och subtrahera ett COleDateTimeSpan värde från ett COleDateTime värde. Med den tredje operatorn kan du subtrahera ett COleDateTime värde från ett annat för att ge ett COleDateTimeSpan värde.
Om någon av operanderna är null är statusen för det resulterande COleDateTime värdet null.
Om det resulterande COleDateTime värdet ligger utanför gränserna för acceptabla värden är värdets COleDateTime status ogiltig.
Om någon av operanderna är ogiltig och den andra inte är null är statusen för det resulterande COleDateTime värdet ogiltig.
Operatorerna + och - kommer att kontrollera om COleDateTime objektet är inställt på null. Ett exempel finns i COleDateTime-relationsoperatorer .
Mer information om giltiga, ogiltiga och null-statusvärden finns i m_status medlemsvariabel.
Mer information om gränserna för COleDateTime värden finns i artikeln Datum och tid: Automation Support.
Exempel
COleDateTime t1(1999, 3, 19, 22, 15, 0); // 10:15PM March 19, 1999
COleDateTime t2(1999, 3, 20, 22, 15, 0); // 10:15PM March 20, 1999
// Subtract 2 COleDateTimes
COleDateTimeSpan ts = t2 - t1;
// one day is 24 * 60 * 60 == 86400 seconds
ASSERT(ts.GetTotalSeconds() == 86400L);
// Add a COleDateTimeSpan to a COleDateTime.
ASSERT((t1 + ts) == t2);
// Subtract a COleDateTimeSpan from a COleDateTime.
ASSERT((t2 - ts) == t1);
COleDateTime::operator +=, -=
Lägg till och subtrahera ett ColeDateTime värde från det här COleDateTime objektet.
COleDateTime& operator+=(COleDateTimeSpan dateSpan) throw();
COleDateTime& operator-=(COleDateTimeSpan dateSpan) throw();
Anmärkningar
Med de här operatorerna kan du lägga till och subtrahera ett COleDateTimeSpan värde till och från detta COleDateTime. Om någon av operanderna är null är statusen för det resulterande COleDateTime värdet null.
Om det resulterande COleDateTime värdet ligger utanför gränserna för acceptabla värden är värdets COleDateTime status ogiltig.
Om någon av operanderna är ogiltig och andra inte är null är statusen för det resulterande COleDateTime värdet ogiltig.
Mer information om giltiga, ogiltiga och null-statusvärden finns i m_status medlemsvariabel.
Operatorerna += och -= kommer att kontrollera om COleDateTime objektet är inställt på null. Ett exempel finns i COleDateTime-relationsoperatorer .
Mer information om gränserna för COleDateTime värden finns i artikeln Datum och tid: Automation Support.
COleDateTime::operator DATE
Konverterar ett ColeDateTime värde till en DATE.
operator DATE() const throw();
Anmärkningar
Den här operatorn returnerar ett DATE objekt vars värde kopieras från det här COleDateTime objektet. Mer information om implementeringen av DATE objektet finns i artikeln Datum och tid: Automation Support.
Operatorn DATE kommer att kontrollera om COleDateTime objektet är inställt på null. Ett exempel finns i COleDateTime-relationsoperatorer .
COleDateTime::P arseDateTime
Parsar en sträng för att läsa ett datum-/tidsvärde.
bool ParseDateTime(
LPCTSTR lpszDate,
DWORD dwFlags = 0,
LCID lcid = LANG_USER_DEFAULT) throw();
Parameterar
lpszDate
En pekare till den null-avslutade strängen som ska parsas. Mer information finns i Kommentarer.
dwFlags
Anger flaggor för nationella inställningar och parsning. En eller flera av följande flaggor:
LOCALE_NOUSEROVERRIDE Använd systemets standardinställningar för nationella inställningar i stället för anpassade användarinställningar.
VAR_TIMEVALUEONLY Ignorera datumdelen under parsningen.
VAR_DATEVALUEONLY Ignorera tidsdelen under parsningen.
lcid
Anger språkvariant-ID som ska användas för konverteringen.
Returvärde
Returnerar TRUE om strängen har konverterats till ett datum-/tidsvärde, annars FALSE.
Anmärkningar
Om strängen har konverterats till ett datum-/tidsvärde anges värdet för det här COleDateTime objektet till det värdet och dess status är giltig.
Anmärkning
Årsvärden måste ligga mellan 100 och 9999, inklusive.
Parametern lpszDate kan ha en mängd olika format. Följande strängar innehåller till exempel godkända datum-/tidsformat:
"25 January 1996"
"8:30:00"
"20:30:00"
"January 25, 1996 8:30:00"
"8:30:00 Jan. 25, 1996"
"1/25/1996 8:30:00" // always specify the full year, even in a 'short date' format
Språkvariant-ID:t påverkar också om strängformatet är acceptabelt för konvertering till ett datum-/tidsvärde.
När det gäller VAR_DATEVALUEONLY anges tidsvärdet till tid 0 eller midnatt. För VAR_TIMEVALUEONLY anges datumvärdet till datum 0, vilket betyder 30 december 1899.
Om strängen inte kunde konverteras till ett datum/tid-värde eller om det fanns ett numeriskt spill är objektets COleDateTime status ogiltig.
Mer information om gränser och implementering för COleDateTime värden finns i artikeln Datum och tid: Automation Support.
COleDateTime::SetDate
Anger datumet för det här COleDateTime objektet.
int SetDate(
int nYear,
int nMonth,
int nDay) throw();
Parameterar
nYear
Anger året som ska kopieras till det här COleDateTime objektet.
nMonth
Anger den månad som ska kopieras till det här COleDateTime objektet.
nDay
Anger den dag då objektet ska kopieras COleDateTime .
Returvärde
Noll om värdet för det här COleDateTime objektet har angetts, annars 1. Det här returvärdet baseras på den DateTimeStatus uppräknade typen. Mer information finns i funktionen SetStatus-medlem .
Anmärkningar
Datumet anges till de angivna värdena. Tiden är inställd på tid 0, midnatt.
Se följande tabell för gränser för parametervärdena:
| Parameter | Gränser |
|---|---|
| nYear | 100 - 9999 |
| nMonth | 1 - 12 |
| nDay | 0 - 31 |
Om dagen i månaden flödar över konverteras den till rätt dag i nästa månad och månaden och/eller året ökas därefter. Ett dagsvärde på noll anger den sista dagen i föregående månad. Beteendet är detsamma som SystemTimeToVariantTime.
Om det datumvärde som anges av parametrarna inte är giltigt anges objektets status till COleDateTime::invalid. Du bör använda GetStatus för att kontrollera värdets DATE giltighet och bör inte anta att värdet för m_dt förblir oförändrad.
Här är några exempel på datumvärden:
| nYear | nMonth | nDay | Värde |
|---|---|---|---|
| 2000 | 2 | 29 | den 29 februari 2000 |
| 1776 | 7 | 4 | den 4 juli 1776 |
| 1925 | 4 | 35 | 35 april 1925 (ogiltigt datum) |
| 10 000 | 1 | 1 | 1 januari 10000 (ogiltigt datum) |
Information om hur du anger både datum och tid finns i COleDateTime::SetDateTime.
Information om medlemsfunktioner som frågar efter värdet för det här COleDateTime objektet finns i följande medlemsfunktioner:
Mer information om gränserna för COleDateTime värden finns i artikeln Datum och tid: Automation Support.
Exempel
// set only the date, time set to midnight
dt.SetDate(1999, 3, 19);
ASSERT(dt.GetYear() == 1999);
ASSERT(dt.GetDay() == 19);
ASSERT(dt.GetMonth() == 3);
ASSERT(dt.GetHour() == 0);
ASSERT(dt.GetMinute() == 0);
ASSERT(dt.GetSecond() == 0);
// setting the time only resets the date to 1899!
dt.SetTime(22, 15, 0);
ASSERT(dt.GetYear() == 1899);
ASSERT(dt.GetDay() == 30);
ASSERT(dt.GetMonth() == 12);
ASSERT(dt.GetHour() == 22);
ASSERT(dt.GetMinute() == 15);
ASSERT(dt.GetSecond() == 0);
COleDateTime::SetDateTime
Anger datum och tid för det här COleDateTime objektet.
int SetDateTime(
int nYear,
int nMonth,
int nDay,
int nHour,
int nMin,
int nSec) throw();
Parameterar
nYear, nMonth, nDay, nHour, nMin, nSec
Ange de datum- och tidskomponenter som ska kopieras till det här COleDateTime objektet.
Returvärde
Noll om värdet för det här COleDateTime objektet har angetts, annars 1. Det här returvärdet baseras på den DateTimeStatus uppräknade typen. Mer information finns i funktionen SetStatus-medlem .
Anmärkningar
Se följande tabell för gränser för parametervärdena:
| Parameter | Gränser |
|---|---|
| nYear | 100 - 9999 |
| nMonth | 1 - 12 |
| nDay | 0 - 31 |
| nHour | 0 - 23 |
| nMin | 0 - 59 |
| nSec | 0 - 59 |
Om dagen i månaden flödar över konverteras den till rätt dag i nästa månad och månaden och/eller året ökas därefter. Ett dagsvärde på noll anger den sista dagen i föregående månad. Beteendet är detsamma som SystemTimeToVariantTime.
Om det datum- eller tidsvärde som anges av parametrarna inte är giltigt anges objektets status till ogiltig och värdet för det här objektet ändras inte.
Här är några exempel på tidsvärden:
| nHour | nMin | nSec | Värde |
|---|---|---|---|
| 1 | 3 | 3 | 01:03:03 |
| 23 | 45 | 0 | 23:45:00 |
| 25 | 30 | 0 | Ogiltig |
| 9 | 60 | 0 | Ogiltig |
Här är några exempel på datumvärden:
| nYear | nMonth | nDay | Värde |
|---|---|---|---|
| 1995 | 4 | 15 | den 15 april 1995 |
| 1789 | 7 | 14 | den 17 juli 1789 |
| 1925 | 2 | 30 | Ogiltig |
| 10 000 | 1 | 1 | Ogiltig |
Information om hur du anger endast datum finns i COleDateTime::SetDate. Information om hur du anger endast tid finns i COleDateTime::SetTime.
Information om medlemsfunktioner som frågar efter värdet för det här COleDateTime objektet finns i följande medlemsfunktioner:
Mer information om gränserna för COleDateTime värden finns i artikeln Datum och tid: Automation Support.
Exempel
Se exemplet för GetStatus.
COleDateTime::SetStatus
Anger status för det här COleDateTime objektet.
void SetStatus(DateTimeStatus status) throw();
Parameterar
status
Det nya statusvärdet för det här COleDateTime objektet.
Anmärkningar
Värdet för statusparametern definieras av den DateTimeStatus uppräknade typen, som definieras i COleDateTime klassen. Mer information finns i COleDateTime::GetStatus .
Försiktighet
Den här funktionen är avsedd för avancerade programmeringssituationer. Den här funktionen ändrar inte data i det här objektet. Den används oftast för att ange statusen till null eller ogiltig. Tilldelningsoperatorn (operatorn =) och SetDateTime anger status för objektet baserat på källvärdena.
Exempel
Se exemplet för GetStatus.
COleDateTime::SetTime
Anger tiden för det här COleDateTime objektet.
int SetTime(
int nHour,
int nMin,
int nSec) throw();
Parameterar
nHour, nMin, nSec
Ange tidskomponenter som ska kopieras till det här COleDateTime objektet.
Returvärde
Noll om värdet för det här COleDateTime objektet har angetts, annars 1. Det här returvärdet baseras på den DateTimeStatus uppräknade typen. Mer information finns i funktionen SetStatus-medlem .
Anmärkningar
Tiden är inställd på de angivna värdena. Datumet är inställt på datum 0, vilket betyder 30 december 1899.
Se följande tabell för gränser för parametervärdena:
| Parameter | Gränser |
|---|---|
| nHour | 0 - 23 |
| nMin | 0 - 59 |
| nSec | 0 - 59 |
Om det tidsvärde som anges av parametrarna inte är giltigt anges objektets status till ogiltig och värdet för det här objektet ändras inte.
Här är några exempel på tidsvärden:
| nHour | nMin | nSec | Värde |
|---|---|---|---|
| 1 | 3 | 3 | 01:03:03 |
| 23 | 45 | 0 | 23:45:00 |
| 25 | 30 | 0 | Ogiltig |
| 9 | 60 | 0 | Ogiltig |
Information om hur du anger både datum och tid finns i COleDateTime::SetDateTime.
Information om medlemsfunktioner som frågar efter värdet för det här COleDateTime objektet finns i följande medlemsfunktioner:
Mer information om gränserna för COleDateTime värden finns i artikeln Datum och tid: Automation Support.
Exempel
Se exemplet för SetDate.
Se även
COleVariant-klass
CTime-klass
CTimeSpan-klass
hierarkidiagram
DELADE ATL/MFC-klasser