heures←heures % 24
FinSi
FinSi
FinSi
Afficher jours, heures, minutes, secondes
FIN
Dans le meilleur des cas, un seul calcul sera effectué. Dans le pire, neuf. Entre les deux, toute une gamme. Si par
exemple on additionne 60 secondes, alors on augmente forcément d’une minute, et trois calculs supplémentaires
sont effectués. Si on augmente d’une heure, alors trois autres nouveaux calculs ont lieu, et d’une journée, deux
derniers calculs. On retrouve bien neuf calculs, au pire. Mais la complexité moyenne est largement réduite par rapport
au premier algorithme. Ce serait calculable via un intervalle aléatoire mais borné de n valeurs pertinentes.
Voici seulement la partie modifiée du code Java :
secondes+=nbsec;
if(secondes>59) {
minutes+=(secondes/60);
secondes=secondes%60;
if(minutes>59) {
heures+=(minutes/60);
minutes=minutes%60;
if(heures>23) {
jours+=(heures/24);
heures=heures%24;
}
}
}
Sachant que Unix compte le nombre de secondes écoulées depuis le 1er janvier 1970 à minuit pour calculer la date
actuelle, vous savez maintenant comment le système d’exploitation fait pour vous la fournir ! Et encore, il doit
convertir les jours en années, en tenant compte des années bissextiles. Vous avez maintenant tout le nécessaire
pour créer vousmême les morceaux d’algorithmes manquants. Vous pouvez même si vous le souhaitez créer un
algorithme supplémentaire pour gérer par exemple les fuseaux horaires en fonction d’une heure centrale UTC. Il n’y a
rien de difficile !
- 14 -
© ENI Editions - All rigths reserved - Jonifar lina
60
FinSi
FinSi
FinSi
Afficher jours, heures, minutes, secondes
FIN
Dans le meilleur des cas, un seul calcul sera effectué. Dans le pire, neuf. Entre les deux, toute une gamme. Si par
exemple on additionne 60 secondes, alors on augmente forcément d’une minute, et trois calculs supplémentaires
sont effectués. Si on augmente d’une heure, alors trois autres nouveaux calculs ont lieu, et d’une journée, deux
derniers calculs. On retrouve bien neuf calculs, au pire. Mais la complexité moyenne est largement réduite par rapport
au premier algorithme. Ce serait calculable via un intervalle aléatoire mais borné de n valeurs pertinentes.
Voici seulement la partie modifiée du code Java :
secondes+=nbsec;
if(secondes>59) {
minutes+=(secondes/60);
secondes=secondes%60;
if(minutes>59) {
heures+=(minutes/60);
minutes=minutes%60;
if(heures>23) {
jours+=(heures/24);
heures=heures%24;
}
}
}
Sachant que Unix compte le nombre de secondes écoulées depuis le 1er janvier 1970 à minuit pour calculer la date
actuelle, vous savez maintenant comment le système d’exploitation fait pour vous la fournir ! Et encore, il doit
convertir les jours en années, en tenant compte des années bissextiles. Vous avez maintenant tout le nécessaire
pour créer vousmême les morceaux d’algorithmes manquants. Vous pouvez même si vous le souhaitez créer un
algorithme supplémentaire pour gérer par exemple les fuseaux horaires en fonction d’une heure centrale UTC. Il n’y a
rien de difficile !
- 14 -
© ENI Editions - All rigths reserved - Jonifar lina
60
