| | auteur : Farscape | En utilisant les classes CTime et CTimeSpan
int GetSpanDays(const CTime TimeBegin,const CTime TimeEnd)
{
CTimeSpan Span = ( TimeEnd -TimeBegin);
return Span.GetDays();
}
int GetSpanDays(const char * szDteBegin,const char *szDteEnd)
{
ASSERT(szDteBegin && szDteEnd);
CString strDteBegin= szDteBegin;
CString strDteEnd=szDteEnd;
ASSERT(strDteBegin.GetLength()==8 && strDteEnd.GetLength()==8);
CTime DateBegin(atoi(strDteBegin.Right(4)),
atoi(strDteBegin.Mid(2,2)),
atoi(strDteBegin.Left(2)),
1,1,1);
CTime DateEnd(atoi(strDteEnd.Right(4)),
atoi(strDteEnd.Mid(2,2)),
atoi(strDteEnd.Left(2)),
1,1,1);
ASSERT(DateBegin<=DateEnd);
return GetSpanDays(DateBegin,DateEnd);
}
int n=GetSpanDays("01011970","07011970");
|
|
| | auteur : Farscape | En utilisant les classes CTime et CTimeSpan
CTime AddDays(const CTime &rTimeRef,const int nAddDays)
{
CTime t;
CTimeSpan ts( abs(nAddDays) , 0 , 0 , 0);;
if(nAddDays<0) t=(rTimeRef -ts);
else t=(rTimeRef + ts);
return t;
}
CString AddDays(const char *szDteRef,const int nAddDays)
{
ASSERT(szDteRef);
CString str= szDteRef;
ASSERT(str.GetLength()==8);
CTime Date(atoi(str.Right(4)),atoi(str.Mid(2,2)),atoi(str.Left(2)),1,1,1);
CTime t=AddDays(Date,nAddDays);
str=t.Format("%d%m%Y");
return str;
}
AfxMessageBox(AddDays("01011970",6));
|
|
| | auteur : Farscape | Le contrôle CDateTimeCtrl disponible dans la palette d'outils dans les ressources permet l'affichage de l'heure ou d'une date sous forme numérique ou littérale.
Pour régler la date deux méthodes sont disponibles :
Mise à jour par une méthode du contrôle :
Apres avoir associé avec ClassWizard un objet CDateTimeCtrl à l'identifiant du contrôle :
CTime Time=CTime::GetCurrentTime();
VERIFY(m_DateTimeCtrl.SetTime(&Time));
|
Mise à jour par une variable de type CTime :
Apres avoir associé avec ClassWizard une variable CTime à l'identifiant du contrôle :
m_DateTime=CTime::GetCurrentTime();
UpdateData(FALSE);
|
|
| | auteur : Farscape | Le contrôle CDateTimeCtrl disponible dans la palette d'outils dans les ressources permet l'affichage de l'heure ou d'une date sous forme numérique ou littérale.
Pour récupérer la date deux méthodes sont disponibles :
Récupération par une méthode du contrôle :
Apres avoir associé avec ClassWizard un objet CDateTimeCtrl à l'identifiant du contrôle :
CTime timeTime;
DWORD dwResult = DateTimeCtrl.GetTime(timeTime);
CString str= timeTime.Format("%d%m%Y");
AfxMessageBox(str) ;
|
Récupération par une variable de type CTime :
Apres avoir associé avec ClassWizard une variable CTime à l'identifiant du contrôle :
UpdateData(TRUE);
CString str= m_DateTime.Format("%d%m%Y");
AfxMessageBox(str) ;
|
|
| | auteur : Farscape |
CTime BeginTime=CTime::GetCurrentTime();
CTime EndTime=CTime::GetCurrentTime();
CTimeSpan spanBeg(BeginTime.GetTime());
CTimeSpan spanEnd(EndTime.GetTime());
spanEnd-=spanBeg;
CString str;
str.Format(" Durée:%02dHr %02dMn %02dSec",
spanEnd.GetHours(),
spanEnd.GetMinutes(),
spanEnd.GetSeconds());
|
|
| | auteur : Farscape | Il suffit d'invoquer la fonction setlocale avant :
LC_ALL pour tous les types : monétaire ,le temps etc ?
le deuxième argument à "" permet de récupérer le paramétrage par défaut de la plateforme .
voir MSDN pour plus de renseignements
Exemple :
#include <locale.h>
setlocale( LC_ALL, "" );
CTime theTime = CTime::GetCurrentTime();
CString s = theTime.Format( "%A, %B %d, %Y" );
|
|
| | auteur : Farscape | En utilisant la classe CTime :
CTime theTime = CTime::GetCurrentTime();
CString s = theTime.Format("%d%m%Y") ;
s = theTime.Format( "%A, %B %d, %Y" );
|
|
Consultez les autres F.A.Q.
 
|
|