par
Ryle » 19 oct. 2006, 12:26
Ok, en effet dans ce cas mktime sert surtout à travailler sur les dates (genre aujourd'hui + 300 heures = xx) Dans ton cas, c'est effectivement une simple conversion à base de divisions et de modulos (reste de la division) qu'il te faut.
Pour t'expliquer simplement, il suffit de diviser ton nombre par la plus grosse valeur, de récupérer la partie entière et d'utiliser le reste de cette division pour recommencer avec la valeur suivante :
Tout d'abord, il faut exprimer ce que tu recherches en heures (puisque c'est en heures que tu travailles) :
- une année = 365 jours * 24 heures = 8760h
- un mois = 30 jours * 24 heures = 720h
- une semaine = 7 jours * 24 heures = 168h (si nécessaire)
- un jour = 24 heures = 24h
...
Il te faut maintenant diviser ton nombre d'heure par ces valeurs, de récupérer la valeur entière et le reste de ta division et de recommencer.
Par exemple, 10.000 heures représentes :
10000 / 8760 = 1 année (reste 1240 heures)
A noter : l'opérateur % (appellé modulo) te permet de déterminer facilement le reste d'une division :
10000 % 8760 = 1240
Prenons donc ce reste et continuons pour savoir combien il y a de mois :
1240 / 720 = 1 mois
1240 % 720 = 520
(je pourrais tout aussi bien me passer de l'étaper année, et calculer directement le nombre de mois directement dans 10.000 heures)
Interessé par le nombre de semaines ?
520 / 168 = 3 semaines
520 % 168 = 16
Puis le nombre de jours ?
16 / 24 = 0
16 % 24 = 0
10.000 heures correspondent donc à 1 an, 1 mois, 3 semaines, 0 jours et 16 heures
Tu peux également zapper le nombre de semaine et passer directe au nombre de jours :
520 / 24 = 21 jours
520 % 24 = 16
10.000 heures correspondent à 1 an, 1 mois, 21 jours et 16 heures.
Tu peux même considérer la journée à 8h au lieu de 24h et refaire le calcul en fonction de tes besoins
C'est pas plus compliqué que ça à mettre en place et si un jour ta direction te demande d'inclure les semaines ou de tout passer en secondes tu sauras le faire. Tu n'auras ainsi plus besoin de demander à quelqu'un de bénévole de te filer un script pour lequel tu es payé, et tu pourras en profiter pour te justifier d'une augmentation

Ok, en effet dans ce cas mktime sert surtout à travailler sur les dates (genre aujourd'hui + 300 heures = xx) Dans ton cas, c'est effectivement une simple conversion à base de divisions et de modulos (reste de la division) qu'il te faut.
Pour t'expliquer simplement, il suffit de diviser ton nombre par la plus grosse valeur, de récupérer la partie entière et d'utiliser le reste de cette division pour recommencer avec la valeur suivante :
Tout d'abord, il faut exprimer ce que tu recherches en heures (puisque c'est en heures que tu travailles) :
- une année = 365 jours * 24 heures = 8760h
- un mois = 30 jours * 24 heures = 720h
- une semaine = 7 jours * 24 heures = 168h (si nécessaire)
- un jour = 24 heures = 24h
...
Il te faut maintenant diviser ton nombre d'heure par ces valeurs, de récupérer la valeur entière et le reste de ta division et de recommencer.
Par exemple, 10.000 heures représentes :
10000 / 8760 = 1 année (reste 1240 heures)
A noter : l'opérateur % (appellé modulo) te permet de déterminer facilement le reste d'une division :
10000 % 8760 = 1240
Prenons donc ce reste et continuons pour savoir combien il y a de mois :
1240 / 720 = 1 mois
1240 % 720 = 520
(je pourrais tout aussi bien me passer de l'étaper année, et calculer directement le nombre de mois directement dans 10.000 heures)
Interessé par le nombre de semaines ?
520 / 168 = 3 semaines
520 % 168 = 16
Puis le nombre de jours ?
16 / 24 = 0
16 % 24 = 0
10.000 heures correspondent donc à 1 an, 1 mois, 3 semaines, 0 jours et 16 heures
Tu peux également zapper le nombre de semaine et passer directe au nombre de jours :
520 / 24 = 21 jours
520 % 24 = 16
10.000 heures correspondent à 1 an, 1 mois, 21 jours et 16 heures.
Tu peux même considérer la journée à 8h au lieu de 24h et refaire le calcul en fonction de tes besoins :)
C'est pas plus compliqué que ça à mettre en place et si un jour ta direction te demande d'inclure les semaines ou de tout passer en secondes tu sauras le faire. Tu n'auras ainsi plus besoin de demander à quelqu'un de bénévole de te filer un script pour lequel tu es payé, et tu pourras en profiter pour te justifier d'une augmentation ;)