Kommentar
Å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.
Anmärkning
Microsoft Foundation-klassbiblioteket (MFC) och ACTIVE Template Library (ATL) fortsätter att stödjas. Vi lägger dock inte längre till funktioner eller uppdaterar dokumentationen.
Representerar en relativ tid, ett tidsintervall.
Syntax
class COleDateTimeSpan
Medlemmar
Offentliga konstruktorer
| Namn | Description |
|---|---|
| COleDateTimeSpan::COleDateTimeSpan | Konstruerar ett COleDateTimeSpan objekt. |
Offentliga metoder
| Namn | Description |
|---|---|
| COleDateTimeSpan::Format | Genererar en formaterad strängrepresentation av ett COleDateTimeSpan objekt. |
| COleDateTimeSpan::GetDays | Returnerar dagsdelen av det intervall som det här COleDateTimeSpan objektet representerar. |
| COleDateTimeSpan::GetHours | Returnerar timdelen av det intervall som det här COleDateTimeSpan objektet representerar. |
| COleDateTimeSpan::GetMinutes | Returnerar minutdelen av det intervall som det här COleDateTimeSpan objektet representerar. |
| COleDateTimeSpan::GetSeconds | Returnerar den andra delen av det intervall som det här COleDateTimeSpan objektet representerar. |
| COleDateTimeSpan::GetStatus | Hämtar statusen (giltigheten) för det här COleDateTimeSpan objektet. |
| COleDateTimeSpan::GetTotalDays | Returnerar antalet dagar som objektet COleDateTimeSpan representerar. |
| COleDateTimeSpan::GetTotalHours | Returnerar antalet timmar som det här COleDateTimeSpan objektet representerar. |
| COleDateTimeSpan::GetTotalMinutes | Returnerar antalet minuter som objektet COleDateTimeSpan representerar. |
| COleDateTimeSpan::GetTotalSeconds | Returnerar antalet sekunder som det här COleDateTimeSpan objektet representerar. |
| COleDateTimeSpan::SetDateTimeSpan | Anger värdet för det här COleDateTimeSpan objektet. |
| COleDateTimeSpan::SetStatus | Anger status (giltighet) för det här COleDateTimeSpan objektet. |
Offentliga operatörer
| Namn | Description |
|---|---|
| operator +, - | Lägg till, subtrahera och ändra tecken för COleDateTimeSpan värden. |
| operator +=, -= | Lägg till och subtrahera ett COleDateTimeSpan värde från det här COleDateTimeSpan värdet. |
| operator = | Kopierar ett COleDateTimeSpan värde. |
| operator ==, <, <= | Jämför två COleDateTimeSpan värden. |
| operator dubbel | Konverterar det här COleDateTimeSpan värdet till en double. |
Publika datamedlemmar
| Namn | Description |
|---|---|
| COleDateTimeSpan::m_span | Innehåller det underliggande double objektet COleDateTimeSpan . |
| COleDateTimeSpan::m_status | Innehåller status för det här COleDateTimeSpan objektet. |
Anmärkningar
COleDateTimeSpan har ingen basklass.
En COleDateTimeSpan håller tid i dagar.
COleDateTimeSpan används med dess tillhörande klass COleDateTime.
COleDateTime kapslar DATE in datatypen för OLE-automatisering.
COleDateTime representerar absoluta tidsvärden. Alla COleDateTime beräkningar omfattar COleDateTimeSpan värden. Relationen mellan dessa klasser motsvarar den mellan CTime och CTimeSpan.
Mer information om klasserna COleDateTime och COleDateTimeSpan finns i artikeln Datum och tid: Automation Support.
Kravspecifikation
Huvudet: ATLComTime.h
Relationsoperatorer för COleDateTimeSpan
Jämförelseoperatorer.
bool operator==(const COleDateTimeSpan& dateSpan) const throw();
bool operator!=(const COleDateTimeSpan& dateSpan) const throw();
bool operator<(const COleDateTimeSpan& dateSpan) const throw();
bool operator>(const COleDateTimeSpan& dateSpan) const throw();
bool operator<=(const COleDateTimeSpan& dateSpan) const throw();
bool operator>=(const COleDateTimeSpan& dateSpan) const throw();
Parameterar
dateSpan
Den COleDateTimeSpan att jämföra.
Returvärde
Dessa operatorer jämför två datum-/tidsintervallvärden och returnerar TRUE om villkoret är sant. annars FALSKT.
Anmärkningar
Anmärkning
En ATLASSERT inträffar om någon av operanderna är ogiltiga.
Example
COleDateTimeSpan spanOne(3, 12, 0, 0); // 3 days and 12 hours
COleDateTimeSpan spanTwo(spanOne); // 3 days and 12 hours
BOOL b;
b = spanOne == spanTwo; // TRUE
b = spanOne < spanTwo; // FALSE, same value
b = spanOne > spanTwo; // FALSE, same value
b = spanOne <= spanTwo; // TRUE, same value
b = spanOne >= spanTwo; // TRUE, same value
spanTwo.SetStatus(COleDateTimeSpan::invalid);
b = spanOne == spanTwo; // FALSE, different status
b = spanOne != spanTwo; // TRUE, different status
COleDateTimeSpan ts1(100.0); // one hundred days
COleDateTimeSpan ts2(110.0); // ten more days
ASSERT((ts1 != ts2) && (ts1 < ts2) && (ts1 <= ts2));
COleDateTimeSpan::COleDateTimeSpan
Konstruerar ett COleDateTimeSpan objekt.
COleDateTimeSpan() throw();
COleDateTimeSpan(double dblSpanSrc) throw();
COleDateTimeSpan(LONG lDays, int nHours, int nMins, int nSecs) throw();
Parameterar
dblSpanSrc
Antalet dagar som ska kopieras till det nya COleDateTimeSpan objektet.
lDays, nHours, nMins, nSecs
Ange de dag- och tidsvärden som ska kopieras till det nya COleDateTimeSpan objektet.
Anmärkningar
Alla dessa konstruktorer skapar nya COleDateTimeSpan objekt som initierats till det angivna värdet. En kort beskrivning av var och en av dessa konstruktorer följer:
COleDateTimeSpan( ) Konstruerar ett
COleDateTimeSpanobjekt som initierats till 0.COleDateTimeSpan(
dblSpanSrc) Konstruerar ettCOleDateTimeSpanobjekt från ett flyttalsvärde.COleDateTimeSpan(
lDays,nHours,nMins,nSecs) Konstruerar ettCOleDateTimeSpanobjekt som initierats till de angivna numeriska värdena.
Status för det nya COleDateTimeSpan objektet är inställt på giltigt.
Mer information om gränserna för COleDateTimeSpan värden finns i artikeln Datum och tid: Automation Support.
Example
COleDateTimeSpan spanOne(2.75); // 2 days and 18 hours
COleDateTimeSpan spanTwo(2, 18, 0, 0); // 2 days and 18 hours
COleDateTimeSpan spanThree(3, -6, 0, 0); // 2 days and 18 hours
COleDateTimeSpan ts1; // Uninitialized time value
COleDateTimeSpan ts2a(ts1); // Copy constructor
COleDateTimeSpan ts2b = ts1; // Copy constructor again
COleDateTimeSpan ts3(100.0); // 100 days
COleDateTimeSpan ts4(0, 1, 5, 12); // 1 hour, 5 minutes, and 12 seconds
COleDateTimeSpan::Format
Genererar en formaterad strängrepresentation av ett COleDateTimeSpan objekt.
CString Format(LPCTSTR pFormat) const;
CString Format(UINT nID) const;
Parameterar
pFormat
En formateringssträng som liknar formateringssträngen printf . Formateringskoder som föregås av ett procenttecken (%) ersätts av motsvarande COleDateTimeSpan komponent. Andra tecken i formateringssträngen kopieras oförändrade till den returnerade strängen. Värdet och innebörden av formateringskoderna för Format visas nedan:
%H Timmar under den aktuella dagen
%M Minuter i den aktuella timmen
%S Sekunder i den aktuella minuten
%% Procenttecken
De fyra formatkoderna som anges ovan är de enda koder som Format accepterar.
-
nID
Resurs-ID:t för formatkontrollsträngen.
Returvärde
En CString som innehåller det formaterade datum-/tidsintervallvärdet.
Anmärkningar
Anropa dessa funktioner för att skapa en formaterad representation av tidsintervallvärdet. Om statusen för det här COleDateTimeSpan objektet är null är returvärdet en tom sträng. Om statusen är ogiltig anges retursträngen av strängresursen IDS_INVALID_DATETIMESPAN.
En kort beskrivning av formulären för den här funktionen följer:
Format(pFormat)
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.
Format(nID)
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.
Example
// get the current time
COleDateTime tmStart = COleDateTime::GetCurrentTime();
// waste some time
CString str;
::Sleep(3000);
// get the current time again
COleDateTime tmFinish = COleDateTime::GetCurrentTime();
// find the difference
COleDateTimeSpan tmSpan = tmFinish - tmStart;
// tell the user
str = tmSpan.Format(_T("%S seconds elapsed"));
_tprintf_s(_T("%s\n"), (LPCTSTR) str);
COleDateTimeSpan::GetDays
Hämtar dagdelen av det här datum-/tidsintervallvärdet.
LONG GetDays() const throw();
Returvärde
Dagdelen av det här datum-/tidsintervallvärdet.
Anmärkningar
Returvärdena från det här funktionsintervallet mellan cirka - 3 615 000 och 3 615 000.
Andra funktioner som frågar efter värdet för ett COleDateTimeSpan objekt finns i följande medlemsfunktioner:
Example
COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetDays() == 3);
COleDateTimeSpan::GetHours
Hämtar timdelen av det här datum-/tidsintervallvärdet.
LONG GetHours() const throw();
Returvärde
Timdelen av det här datum-/tidsintervallvärdet.
Anmärkningar
Returvärdena från det här funktionsintervallet mellan - 23 och 23.
Andra funktioner som frågar efter värdet för ett COleDateTimeSpan objekt finns i följande medlemsfunktioner:
Example
COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetHours() == 1);
COleDateTimeSpan::GetMinutes
Hämtar minutdelen av det här datum-/tidsintervallvärdet.
LONG GetMinutes() const throw();
Returvärde
Minutdelen av det här datum-/tidsintervallvärdet.
Anmärkningar
Returvärdena från det här funktionsintervallet mellan - 59 och 59.
Andra funktioner som frågar efter värdet för ett COleDateTimeSpan objekt finns i följande medlemsfunktioner:
Example
COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetMinutes() == 5);
COleDateTimeSpan::GetSeconds
Hämtar den andra delen av det här datum-/tidsintervallvärdet.
LONG GetSeconds() const throw();
Returvärde
Sekunddelen av det här datum-/tidsintervallvärdet.
Anmärkningar
Returvärdena från det här funktionsintervallet mellan - 59 och 59.
Andra funktioner som frågar efter värdet för ett COleDateTimeSpan objekt finns i följande medlemsfunktioner:
Example
COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetSeconds() == 12);
COleDateTimeSpan::GetStatus
Hämtar statusen (giltigheten) för det här COleDateTimeSpan objektet.
DateTimeSpanStatus GetStatus() const throw();
Returvärde
Status för det här COleDateTimeSpan värdet.
Anmärkningar
Returvärdet definieras av den DateTimeSpanStatus uppräknade typen, som definieras i COleDateTimeSpan klassen.
enum DateTimeSpanStatus{
valid = 0,
invalid = 1,
null = 2,
};
En kort beskrivning av dessa statusvärden finns i följande lista:
COleDateTimeSpan::validAnger att det härCOleDateTimeSpanobjektet är giltigt.COleDateTimeSpan::invalidAnger att det härCOleDateTimeSpanobjektet är ogiltigt, dvs. dess värde kan vara felaktigt.COleDateTimeSpan::nullAnger att det härCOleDateTimeSpanobjektet ä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 COleDateTimeSpan objekt är ogiltig i följande fall:
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 COleDateTimeSpan::operator +, - och COleDateTimeSpan::operator +=, -=.
Mer information om gränserna för COleDateTimeSpan värden finns i artikeln Datum och tid: Automation Support.
COleDateTimeSpan::GetTotalDays
Hämtar det här datum-/tidsintervallvärdet uttryckt i dagar.
double GetTotalDays() const throw();
Returvärde
Det här datum-/tidsintervallvärdet uttryckt i dagar. Även om den här funktionen är prototyp för att returnera en dubbel, returnerar den alltid ett heltalsvärde.
Anmärkningar
Returvärdena från det här funktionsintervallet mellan cirka - 3,65e6 och 3,65e6.
Andra funktioner som frågar efter värdet för ett COleDateTimeSpan objekt finns i följande medlemsfunktioner:
Example
COleDateTimeSpan ts(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
ASSERT(ts.GetTotalDays() == 3);
ASSERT(ts.GetTotalHours() == 73);
ASSERT(ts.GetTotalMinutes() == 4385);
ASSERT(ts.GetTotalSeconds() == 263112);
COleDateTimeSpan::GetTotalHours
Hämtar det här datum-/tidsintervallvärdet uttryckt i timmar.
double GetTotalHours() const throw();
Returvärde
Det här datum-/tidsintervallvärdet uttryckt i timmar. Även om den här funktionen är prototyp för att returnera en dubbel, returnerar den alltid ett heltalsvärde.
Anmärkningar
Returvärdena från det här funktionsintervallet mellan cirka - 8,77e7 och 8,77e7.
Andra funktioner som frågar efter värdet för ett COleDateTimeSpan objekt finns i följande medlemsfunktioner:
Example
Se exemplet för GetTotalDays.
COleDateTimeSpan::GetTotalMinutes
Hämtar det här datum-/tidsintervallvärdet uttryckt i minuter.
double GetTotalMinutes() const throw();
Returvärde
Det här datum-/tidsintervallvärdet uttryckt i minuter. Även om den här funktionen är prototyp för att returnera en dubbel, returnerar den alltid ett heltalsvärde.
Anmärkningar
Returvärdena från det här funktionsintervallet mellan cirka - 5,26e9 och 5,26e9.
Andra funktioner som frågar efter värdet för ett COleDateTimeSpan objekt finns i följande medlemsfunktioner:
Example
Se exemplet för GetTotalDays.
COleDateTimeSpan::GetTotalSeconds
Hämtar det här datum-/tidsintervallvärdet uttryckt i sekunder.
double GetTotalSeconds() const throw();
Returvärde
Det här datum-/tidsintervallvärdet uttryckt i sekunder. Även om den här funktionen är prototyp för att returnera en dubbel, returnerar den alltid ett heltalsvärde.
Anmärkningar
Returvärdena från det här funktionsintervallet mellan cirka - 3.16e11 till 3.16e11.
Andra funktioner som frågar efter värdet för ett COleDateTimeSpan objekt finns i följande medlemsfunktioner:
Example
Se exemplet för GetTotalDays.
COleDateTimeSpan::m_span
Det underliggande double värdet för det här COleDateTime objektet.
double m_span;
Anmärkningar
Det här värdet uttrycker datum/tidsintervall i dagar.
Försiktighet
Om du ändrar värdet i double datamedlemmen ändras värdet för det här COleDateTimeSpan objektet. Det ändrar inte statusen för det här COleDateTimeSpan objektet.
COleDateTimeSpan::m_status
Typen för den här datamedlemmen är den uppräknade typen DateTimeSpanStatus, som definieras i COleDateTimeSpan klassen.
DateTimeSpanStatus m_status;
Anmärkningar
enum DateTimeSpanStatus{
valid = 0,
invalid = 1,
null = 2,
};
En kort beskrivning av dessa statusvärden finns i följande lista:
COleDateTimeSpan::validAnger att det härCOleDateTimeSpanobjektet är giltigt.COleDateTimeSpan::invalidAnger att det härCOleDateTimeSpanobjektet är ogiltigt, dvs. dess värde kan vara felaktigt.COleDateTimeSpan::nullAnger att det härCOleDateTimeSpanobjektet ä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 COleDateTimeSpan objekt är ogiltig i följande fall:
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 SetStatus.
Mer information om de åtgärder som kan ange statusen som ogiltig finns i COleDateTimeSpan::operator +, - och COleDateTimeSpan::operator +=, -=.
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.
Mer information om gränserna för COleDateTimeSpan värden finns i artikeln Datum och tid: Automation Support.
COleDateTimeSpan::operator =
Kopierar ett COleDateTimeSpan värde.
COleDateTimeSpan& operator=(double dblSpanSrc) throw();
Anmärkningar
Den här överlagrade tilldelningsoperatorn kopierar värdet för källdatum/tidsintervall till det här COleDateTimeSpan objektet.
COleDateTimeSpan::operator +, -
Lägg till, subtrahera och ändra tecken för COleDateTimeSpan värden.
COleDateTimeSpan operator+(const COleDateTimeSpan& dateSpan) const throw();
COleDateTimeSpan operator-(const COleDateTimeSpan& dateSpan) const throw();
COleDateTimeSpan operator-() const throw();
Anmärkningar
Med de två första operatorerna kan du lägga till och subtrahera datum-/tidsintervallvärden. Med den tredje kan du ändra tecknet för ett datum-/tidsintervallvärde.
Om någon av operanderna är null är statusen för det resulterande COleDateTimeSpan värdet null.
Om någon av operanderna är ogiltig och den andra inte är null är statusen för det resulterande COleDateTimeSpan värdet ogiltig.
Mer information om giltiga, ogiltiga och null-statusvärden finns i m_status medlemsvariabel.
Example
COleDateTimeSpan ts1(3, 1, 5, 12); // 3 days, 1 hour, 5 min, and 12 sec
COleDateTimeSpan ts2(100.0 / (24 * 3600.0)); // 100 seconds
COleDateTimeSpan ts3 = ts1 + ts2;
ASSERT(ts3.GetSeconds() == 52); // 6 mins, 52 secs
COleDateTimeSpan::operator +=, -=
Lägg till och subtrahera ett COleDateTimeSpan värde från det här COleDateTimeSpan värdet.
COleDateTimeSpan& operator+=(const COleDateTimeSpan dateSpan) throw();
COleDateTimeSpan& operator-=(const COleDateTimeSpan dateSpan) throw();
Anmärkningar
Med de här operatorerna kan du lägga till och subtrahera datum-/tidsintervallvärden från det här COleDateTimeSpan objektet. Om någon av operanderna är null är statusen för det resulterande COleDateTimeSpan värdet null.
Om någon av operanderna är ogiltig och den andra inte är null är statusen för det resulterande COleDateTimeSpan värdet ogiltig.
Mer information om giltiga, ogiltiga och null-statusvärden finns i m_status medlemsvariabel.
Example
COleDateTimeSpan ts1(10.0); // 10 days
COleDateTimeSpan ts2(100.0); // 100 days
ts2 -= ts1;
ASSERT(ts2.GetTotalDays() == 90);
COleDateTimeSpan::operator double
Konverterar det här COleDateTimeSpan värdet till en double.
operator double() const throw();
Anmärkningar
Den här operatorn returnerar värdet för det här COleDateTimeSpan värdet som ett flyttal antal dagar.
COleDateTimeSpan::SetDateTimeSpan
Anger värdet för det här datum-/tidsintervallvärdet.
void SetDateTimeSpan(LONG lDays, int nHours, int nMins, int nSecs) throw();
Parameterar
lDays, nHours, nMins, nSecs
Ange datum-span- och tidsintervallvärden som ska kopieras till det här COleDateTimeSpan objektet.
Anmärkningar
Information om funktioner som frågar efter värdet för ett COleDateTimeSpan objekt finns i följande medlemsfunktioner:
Example
COleDateTimeSpan spanOne;
COleDateTimeSpan spanTwo;
spanOne.SetDateTimeSpan(0, 2, 45, 0); // 2 hours and 45 seconds
spanTwo.SetDateTimeSpan(0, 3, -15, 0); // 2 hours and 45 seconds
COleDateTimeSpan::SetStatus
Anger status (giltighet) för det här COleDateTimeSpan objektet.
void SetStatus(DateTimeSpanStatus status) throw();
Parameterar
status
Det nya statusvärdet för det här COleDateTimeSpan objektet.
Anmärkningar
Parametervärdet Status definieras av den DateTimeSpanStatus uppräknade typen, som definieras i COleDateTimeSpan klassen.
enum DateTimeSpanStatus{
valid = 0,
invalid = 1,
null = 2,
};
En kort beskrivning av dessa statusvärden finns i följande lista:
COleDateTimeSpan::validAnger att det härCOleDateTimeSpanobjektet är giltigt.COleDateTimeSpan::invalidAnger att det härCOleDateTimeSpanobjektet är ogiltigt, dvs. dess värde kan vara felaktigt.COleDateTimeSpan::nullAnger att det härCOleDateTimeSpanobjektet ä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.)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. Observera att tilldelningsoperatorn (operatorn =) och SetDateTimeSpan anger status för objektet baserat på källvärdena.
Example
// if the person is not still in school, set days to graduation to null
if (!m_bStillInSchool || m_dtDateOfGraduation.GetStatus() == COleDateTime::null)
m_dtsDaysToGraduation.SetStatus(COleDateTimeSpan::null);
Se även
COleDateTime-klass
CTime-klass
CTimeSpan-klass
hierarkidiagram
Delade ATL/MFC-klasser