Calcul d'heure
Résolu
roberta56
-
roberta56 -
roberta56 -
Bonjour j'aimerais créé un script qui me permette de calculer les différents tiers d'un durée, mais j'ai un problème après minuit au lieu de s'afficher en 01:00 ça s'affiche en 25:00. Je n'arrive pas a l'afficher correctement
Voici mon code
Merci d'avance pour votre aide.
Voici mon code
// Chaine horaire en mibutes String.prototype.toMinutes=function(){return parseInt(this.substr(0,2),10)*60+parseInt(this.substr(3,2),10)} // Ajout de zéro de complétion Number.prototype.withLeadingZero=function(){var str=''+this;while(str.length<2) str='0'+str;return str} // Minutes en chaîne horaire Number.prototype.toHHMMString=function(){return Math.floor(this/60).withLeadingZero()+':'+(this%60).withLeadingZero();} var heure1="6:00"; var heure2="18:00"; var diff=(heure2.toMinutes()-heure1.toMinutes()).toHHMMString(); var tiers= (diff.toMinutes()/3).toHHMMString(); var tiers1= (heure2.toMinutes()).toHHMMString(); var tiers2= (heure2.toMinutes()+ tiers.toMinutes()).toHHMMString(); var tiers3= (heure2.toMinutes()+ tiers.toMinutes()+ tiers.toMinutes()).toHHMMString();
Merci d'avance pour votre aide.
A voir également:
- Calcul d'heure
- Calcul moyenne excel - Guide
- Calcul km marche à pied gratuit - Télécharger - Sport
- Changement d'heure - Guide
- Calcul charpente bois gratuit - Télécharger - Architecture & Déco
- Cdg heure d'arrivée a destination shein ✓ - Forum Consommation & Internet
3 réponses
Bonjour,
Pouvez-vous tester ce code
Pouvez-vous tester ce code
import javax.swing.*; import java.awt.*; import java.awt.event.*; import java.util.*; class Heure extends JFrame { private int heure,vraiHeure,min,seconde; private int[] x2={200,209,217,225,233,240,248,254,260,265,270, 274,277,278,279,280,279,278,277,274,270, 265,260,254,248,240,233,225,217,209,200, 192,184,176,168,160,153,147,141,136,130, 127,124,122,121,120,121,122,124,127,130, 136,141,147,153,160,168,176,184,192}; private int[] y2={70,71,72,74,77,80,86,91,97,103,110, 118,126,134,142,150,159,167,175,183,190, 197,204,209,214,220,224,227,228,229,230, 229,228,227,224,220,214,209,204,197,190, 183,175,167,159,150,142,134,126,118,110, 103,97,91,86,80,77,74,72,71}; private int[] Tx2={195,240,270,280,270,240,195,155,125,115,120,150}; private int[] Ty2={70,80,110,155,195,225,240,225,195,155,115,80}; private int[] Hx2={200,207,213,220,225,230,236,240,244,247,248,249, 250,249,248,247,244,236,230,225,213,220,213,207,200, 194,188,181,175,170,165,161,157,154,152,151,150,151, 152,154,157,161,165,170,175,181,188,194}; private int[] Hy2={100,101,102,104,107,111,115,120,125,131,138,144,150, 157,163,170,175,181,186,190,194,197,198,199,200, 199,198,197,194,190,186,181,175,170,163,157,150,144, 138,131,125,120,115,111,107,104,102,101}; private final int x1=200,y1=150; private boolean quar=true,demi=true,moinquar=true; public Heure() { super("Heure"); setBounds(300,200,400,300); Container con = getContentPane(); con.setLayout(null); Date date = new Date(); System.out.println(Hx2.length); System.out.println(Hy2.length); setDefaultCloseOperation(this.EXIT_ON_CLOSE); heure = date.getHours(); vraiHeure = heure; if(heure > 12) heure=(heure-=12)*4; min = date.getMinutes(); seconde = date.getSeconds(); if(min >= 15 && min < 30) { heure++; quar = false; } if(min >= 30 && min < 45) { heure+=2; quar = false; demi = false; } if(min >= 45) { heure+=3; quar = false; demi = false; moinquar = false; } System.out.println(vraiHeure+":"+min+" "+seconde); setVisible(true); setResizable(false); second(); } public void paint(Graphics g) { g.clearRect(0,0,400,300); g.setColor(Color.orange); g.fillRect(100,50,200,200); g.setColor(Color.white); g.fillOval(100,50,200,200); g.setColor(Color.green); g.drawLine(x1,y1,x2[min],y2[min]); g.drawLine(x1,y1,Hx2[heure],Hy2[heure]); g.setColor(Color.red); g.drawLine(x1,y1,x2[seconde],y2[seconde]); g.setColor(Color.blue); g.drawString("12",Tx2[0],Ty2[0]); for(int i=1;i < 12;i++) { g.drawString(String.valueOf(i),Tx2[i],Ty2[i]); } g.setColor(Color.black); if(seconde<10&&min<10) g.drawString(vraiHeure+":0"+min+" 0"+seconde,180,270); if(seconde>=10&&min<10) g.drawString(vraiHeure+":0"+min+" "+seconde,180,270); if(seconde<10&&min>=10) g.drawString(vraiHeure+":"+min+" 0"+seconde,180,270); if(seconde>=10&&min>=10) g.drawString(vraiHeure+":"+min+" "+seconde,180,270); } private void second() { Thread sec = new Thread(); while(true) { try { sec.sleep(1000); }catch(Exception err) { } if(seconde==59) { seconde = 0; if(min==59) { min = 0; if(heure==48) { heure = 0; vraiHeure = 0; } else { heure++; vraiHeure++; } quar=true; demi=true; moinquar=true; } else min++; } else seconde++; if(min >= 15 && min < 30 && quar) { heure++; quar = false; } if(min >= 30 && min < 45 && demi) { heure++; demi = false; } if(min >= 45 && moinquar) { heure++; moinquar = false; } repaint(); } } public static void main(String[] args) { new Heure(); } }
Bonsoir,
Pour traiter ta question, il faut que tu utilises un objet date.
NB: Je suis parti du principe que le 6h et le 18h étaient sur la même journée...
Si tu veux faire le calcul entre 18h et 6h le lendemain .. il faut
Pour traiter ta question, il faut que tu utilises un objet date.
function msToTime(duration) { var milliseconds = parseInt((duration % 1000) / 100), seconds = Math.floor((duration / 1000) % 60), minutes = Math.floor((duration / (1000 * 60)) % 60), hours = Math.floor((duration / (1000 * 60 * 60)) % 24); hours = (hours < 10) ? "0" + hours : hours; minutes = (minutes < 10) ? "0" + minutes : minutes; seconds = (seconds < 10) ? "0" + seconds : seconds; return hours + ":" + minutes + ":" + seconds + "." + milliseconds; } var d1 = new Date(); d1.setHours(6, 0, 0); // heure1="6:00"; var d2 = new Date(); d2.setHours(18, 0, 0); // heure2="18:00"; var diff = Math.abs(d2 - d1); // retourne la différence en millisecondes console.log(msToTime(diff)); // affiche dans la console la durée en Heures:Minutes:Secondes var tiers=diff/3; console.log(msToTime(tiers)); // affiche dans la console la durée en Heures:Minutes:Secondes var tiers1 = new Date(d1.getTime() + tiers); console.log(tiers1); var tiers2 = new Date(tiers1.getTime() + tiers); console.log(tiers2); var tiers3 = new Date(tiers2.getTime() + tiers); console.log(tiers3);
NB: Je suis parti du principe que le 6h et le 18h étaient sur la même journée...
Si tu veux faire le calcul entre 18h et 6h le lendemain .. il faut
var d2 = new Date(); d2.setDate(d2.getDate() + 1); d2.setHours(6, 0, 0); // heure2="6:00" le lendemain; var d1 = new Date(); d1.setHours(18, 0, 0); // heure1="18:00";
Visiblement tu continues à répondre n'importe quoi .....
Ton code .. c'est du JAVA .... la question concerne du JAVASCRIPT !!