comparaison de date sous visual c++

comparaison de date sous visual c++ - Programmation

Marsh Posté le 15-09-2001 à 11:55:14    

je suis en train d'ecrire un programme qui pourra s'eteindre à une heure donnée .. je recupere dans une variable la date et l'heure de l'arret de windows souhaité par l'utilisateur, mais je sais pas comment il faut s'y prendre pour la comparer avec l'horloge systeme et ce toutes les secondes.
 
si qq'un pouvez m'apporter une reponse ca serait cool :)
merci d'avance

Reply

Marsh Posté le 15-09-2001 à 11:55:14   

Reply

Marsh Posté le 15-09-2001 à 12:26:04    

si tu veux comparer a la seconde pret tu compare deux valeur time_t tout simplement.
 
ps: fait gaffe si tu fait des conversions gmt / local

Reply

Marsh Posté le 15-09-2001 à 12:39:57    

mais j'utilise quel evenement pour faire ca ? wn_timer?

Reply

Marsh Posté le 15-09-2001 à 12:46:37    

si tu veux mais enfin va va bloker un peu ton programme si tu compare toutes les secondes.
le mieux serait de faire une thread

Reply

Marsh Posté le 15-09-2001 à 13:37:36    

bon voilà ce que j'ai fait pour ceux qui en aurait besoin :
 
 
void CDelayDlg::SetDelay(COleDateTime dDate, UINT nCar)
{
 Date = dDate;
 Car = 60*nCar; // nCar * 60 secondes
}
 
BOOL CDelayDlg::OnInitDialog()  
{
 CDialog::OnInitDialog();
 
 // TODO: Add extra initialization here
 
 // Set the timer
 SetTimer(1,1000,NULL);
 
 return TRUE;  // return TRUE unless you set the focus to a control
               // EXCEPTION: OCX Property Pages should return FALSE
}
 
void CDelayDlg::OnTimer(UINT nIDEvent)  
{
 // TODO: Add your message handler code here and/or call default
 CurrentDate = COleDateTime::GetCurrentTime();
 if(IsCompteARebours)
 {
  Car--;
  CString tmp;
  tmp.Format("Arrêt dans : %d min %.2d sec",Car/60,Car%60);
  SetWindowText(tmp);
 
  if(Car <= 0)
   CDialog::OnOK();
 }
 else
 {
  CString tmp;
  tmp.Format("Arrêt le : %.2d/%.2d/%d à %.2d:%.2d:%2d",
     Date.GetDay(), Date.GetMonth(), Date.GetYear(),
     Date.GetHour(),Date.GetMinute(),Date.GetSecon
d());
  SetWindowText(tmp);
 
  if(CurrentDate >= Date)
   CDialog::OnOK();
 }
 
 CDialog::OnTimer(nIDEvent);
}

Reply

Marsh Posté le 15-09-2001 à 13:38:18    

et c'est koi la methode avec les threads? ca m'interresse..

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed