DATE
-
Ich habe ein Datentyp DATE denn möchte ich in Cstring formatieren und zwar so das ich Tag, Monat, Jahr
Hat da jemand Erfahrungen ??????
Danke
-
was soll das für ein datentyp sein ?
Wo hast du ihn her ?Devil
-
SYSTEMTIME st; if( VariantTimeToSystemTime( deinDATE, &st ) ) { deinCString.Format( "%d.%d.%d", st.wDay, st.wMonth, st.wYear ); }
-
Oder:
COleDateTime dt( deinDATE); CString str = dt.Format("..."); // siehe MSDN
-
Moment ich verstehe einst nicht ganz, wenn ich so schreibe:
m_dtErstellDatum(pRs->m_dtErstelldatum);
sagt er error C2064: Ausdruck ergibt keine Funktion
und ich mache eigentlich nicht als die Verbale m_dtErstellDatum global zu Deklarieren ??
Wenn ich aber so schreibe
COleDateTime dErstellDatum(pRs->m_dtErstelldatum);
Dann geht ?
Und noch was
strErstelldatum = dErstellDatum.Format("%H:%M:%S %A, %B %d, %Y");
m_Grid.SetItemText(nItem, 6, strErstelldatum);
lauft alles super
strErstelldatum = dErstellDatum.Format("%H:%M:%S %A, %B %d, %Y");
strLetzteAend = dLetzteAend.Format("%H:%M:%S %A, %B %d, %Y");
m_Grid.SetItemText(nItem, 7, strLetzteAend);
m_Grid.SetItemText(nItem, 6, strErstelldatum);
kein Compiler Fehler aber progi schmiert ab und zwar hier
CString COleDateTime::Format(LPCTSTR pFormat) const
{
CString strDate;
struct tm tmTemp;// If null, return empty string
if (GetStatus() == null)
return strDate;// If invalid, return DateTime resource string
// Hier schmiert er ab
if (GetStatus() == invalid || !_AfxTmFromOleDate(m_dt, tmTemp))
{
VERIFY(strDate.LoadString(AFX_IDS_INVALID_DATETIME));
return strDate;
}// Convert tm from afx internal format to standard format
_AfxTmConvertToStandardFormat(tmTemp);// Fill in the buffer, disregard return value as it's not necessary
LPTSTR lpszTemp = strDate.GetBufferSetLength(MAX_TIME_BUFFER_SIZE);
_tcsftime(lpszTemp, strDate.GetLength(), pFormat, &tmTemp);
strDate.ReleaseBuffer();return strDate;
}
-
Ok also ich weis schon warum er brecht ab, und zwar weil in DB NULL steht
Wie frage ich ColeDateTime ob in DB NULL steht ??
-
vielleich so
if(!dLetzteAend.ParseDateTime(NULL,VAR_DATEVALUEONLY )){
strLetzteAend="";
}else strLetzteAend = dLetzteAend.Format("%c");
-
Oder so, daß meine Datumvariable ursprünglich von DATE kommt und es ist nichts anderes als ein double Wert
//Überprüfen ob in DB NULL Wert steht
if(pRs->m_dtLetzteAend <= NULL){
strLetzteAend="";
}else strLetzteAend = dLetzteAend.Format("%c");