Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Datum um eins erhöhen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
13.07.2004, 10:17 Uhr
andy_mann



Hallo Leute,

kan mir jemand sagen, wie ich ein Datum um eins ( 1 Tag ) erhöhen kann ??

Ich muß natürlich auch Berücksichtigen, wenn es einen Monatswechsel gibt

so weit bin ich..

C++:
CString CUtil::DatumUmEinsErhoehen()
{
    CString m_strDatum;

    int m_iTag = 28;
    int m_iMonat = 2;
    int m_iJahr = 2004;

    COleDateTime odtDatum( m_iJahr, m_iMonat, m_iTag, 0, 0, 0 ); // Jaht, Monat, Tag, Stunde, Minute, Sekunde

    odtDatum; // hier um eins erhöhen...... ?????????????

    CString m_strDatum = odtDatum.Format("%d.%m.%Y");    

    return m_strDatum;
}



Gruß
andy_mann

Dieser Post wurde am 13.07.2004 um 10:18 Uhr von andy_mann editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
13.07.2004, 10:26 Uhr
t10ottoo



Also erstmal kannste doch ganz einfach die Variable m_iTag um eins erhöhen, oder?

C++:
m_iTag++;


Vorher musste halt prüfen, wie hoch der Tag schon ist, und welcher Monat. Also wenn Juli (Monat = 7) ist, dann darf Tag maximal 31 sein (Tag <= 31).
Und wenn der Tag schon 31 ist, dann soll Tag wieder auf 1 gesetzt werden und Monat um eins erhöht werden. Aber wenn Monat schon auf 12 ist, dann soll Monat auf 1 gesezt werden.
Also entweder du machst zisch if- oder switch-Anweisungen, oder du schreibst die Daten in einer Datei.

Ich hoffe, dir hat das geholfen.
Thomas
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
13.07.2004, 10:28 Uhr
Hakuna



Also wenns mit einem Edit ist, kannst du daneben ja ein Drehfeld einbinden:

C++:
ON_NOTIFY(UDN_DELTAPOS, IDC_UPDOWNDATE, OnDeltaposUpdowndate)


das würde dann in die MassageMap kommen, wobei IDC_UPDOWNDATE dein Spin-Control wäre und OnDeltaposUpdowndate die Funktion.
Irgendwie so:

C++:
void CDEINEKLASSE::OnDeltaposUpdownyear(NMHDR* pNMHDR, LRESULT* pResult)
{
    NM_UPDOWN* pNMUpDown = (NM_UPDOWN*)pNMHDR;
    CTimeSpan udday(1,0,0,0);
    if(pNMUpDown->iDelta == 1)m_deindatum-=udday;//CTime m_deindatum
    else m_deindatum+=udday;
    SetDlgItemText(IDC_DEINEDITFELD, m_deindatum.Format("%d.%m.%Y"));
    *pResult = 0;
}



Hab das aber jetzt nur so mal geschrieben, keine Garantie obs geht
Das feine daran wenn man CTime benutzt ist, dass er selbst weiß wann monatswechsel ist usw...
--
Gruß, Hakuna
....und das Schlimmste ist du merkst es einfach nicht...

Dieser Post wurde am 13.07.2004 um 10:37 Uhr von Hakuna editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
13.07.2004, 10:30 Uhr
andy_mann



Danke Dir,

ist nur so, wenn eben der Februar ankommt, ist der Monat 28 oder 29 Tage lang, da muß mann dann noch das Schaltjahr berücksichtigen, habe gedacht mit COleDateTime gibt es eine Funktion die das schon berücksichtigt.

Ansonsten kann man ja gleich das ganze selber schreiben...

Gruß
andy_mann
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
13.07.2004, 10:43 Uhr
Tommix



Hallo,

C++:
...
int m_iTag = 28;
int m_iMonat = 2;
int m_iJahr = 2004;

COleDateTime odtDatum( m_iJahr, m_iMonat, m_iTag, 0, 0, 0 ); // Jaht, Monat, Tag, Stunde, Minute, Sekunde

COleDateTimeSpan dist(1 /*long lDays*/, 0 /*int nHours*/, 0 /*int nMins*/, 0 /*int nSecs*/);

odtDatum = odtDatum+dist;

...



Gruss, Tommix

Dieser Post wurde am 13.07.2004 um 10:43 Uhr von Tommix editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
13.07.2004, 11:44 Uhr
andy_mann



Oh,

vielen Dank,

ich habe es jetzt so gemacht..

odtDatum.m_dt += 1;

Gruß und nochmals Danke
andy_mann
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: