COleDateTimeSpan-klass

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 COleDateTimeSpan objekt som initierats till 0.

  • COleDateTimeSpan(dblSpanSrc) Konstruerar ett COleDateTimeSpan objekt från ett flyttalsvärde.

  • COleDateTimeSpan(lDays,nHours,nMins,nSecs) Konstruerar ett COleDateTimeSpan objekt 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::valid Anger att det här COleDateTimeSpan objektet är giltigt.

  • COleDateTimeSpan::invalid Anger att det här COleDateTimeSpan objektet är ogiltigt, dvs. dess värde kan vara felaktigt.

  • COleDateTimeSpan::null Anger att det här COleDateTimeSpan objektet ä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::valid Anger att det här COleDateTimeSpan objektet är giltigt.

  • COleDateTimeSpan::invalid Anger att det här COleDateTimeSpan objektet är ogiltigt, dvs. dess värde kan vara felaktigt.

  • COleDateTimeSpan::null Anger att det här COleDateTimeSpan objektet ä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::valid Anger att det här COleDateTimeSpan objektet är giltigt.

  • COleDateTimeSpan::invalid Anger att det här COleDateTimeSpan objektet är ogiltigt, dvs. dess värde kan vara felaktigt.

  • COleDateTimeSpan::null Anger att det här COleDateTimeSpan objektet ä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