| 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.
|
|