JS: Zeitdifferenz in Millisekunden, Sekunden, Minuten, etc. konvertieren mit Modulo

565558_web_R_B_by_Wandersmann_pixelio.deHeute gibt es nur einen kleinen Blogbeitrag von mir. Es geht um die Zeit, genauer gesagt um die Konvertierung von Zeitdifferenzen in normale Formate, wie Stunde, Minute oder Sekunde. Mein Beispiel (eine Art Stopuhr) kann man auch ganz einfach auf andere Programmiersprachen übertragen. Ich zeige heute aber nur Javascript und Java.

 

 

Das Beispiel mit Java

package main;

import java.util.Date;

public class Time {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		// Startzeit
		Date start = new Date();
		
		// Achtung Endlos-Schleife
		while (true) {
// aktuelle Zeit holen
			Date akt = new Date();
			
// Differenz berechnen
			long diff = akt.getTime() - start.getTime();
		
// Werte berechnen
			double tag = Math.floor(diff / (1000*60*60*24));
			diff = diff % (1000*60*60*24);
			double std = Math.floor(diff / (1000*60*60));
			diff = diff % (1000*60*60);
			double min = Math.floor(diff / (1000*60));
			diff = diff % (1000*60);
			double sec = Math.floor(diff / 1000);
			double mSec = diff % 1000;
			
// Ausgabe
			System.out.println("Tag: " + tag + " Std: " + std + " Min: " + min + " Sec: " + sec + " Msec: " + mSec);
		}
	}
}

 

Das Beispiel mit Javascript

	var start = new Date();
	var myVar = setInterval(function(){time()},1);

function time(){
// aktuelle Zeit holen
	var akt = new Date();

// Differenz berechnen
	var diff = akt.getTime() - start.getTime();

// Werte berechnen
	var tag = Math.floor(diff / (1000*60*60*24));
	diff = diff % (1000*60*60*24);
	var std = Math.floor(diff / (1000*60*60));
	diff = diff % (1000*60*60);
	var min = Math.floor(diff / (1000*60));
	diff = diff % (1000*60);
	var sec = Math.floor(diff / 1000);
	var mSec = diff % 1000;
	
// Achtung! Die Ausgabe ist mit jQuery gemacht
	$("#ausgabeElement").html("Tag: " + tag + " Std: " + std + " Min: " + min + " Sec: " + sec + " Msec: " + mSec);
}

 

Wichtige Frage

  • Die Frage des Tages lautet:
Warum habe ich Math.floor() statt Math.round() verwendet?
  • Die Antwort:

Math.floor() rundet immer ab statt wie bei Math.round() auf.
Beispiele:

  • Math.floor(2.5) = 2 vs. Math.round(2.5) = 3
  • Math.floor(2.7) = 2 vs. Math.round(2.7) = 3
  • Math.floor(1.95583) = 1 vs. Math.round(1.95583) = 2

 

Quellen

  • Bild: ©2012 Wandersmann / PIXELIO

 

Copyright © 2013 AxxG – Alexander Gräsel



Keine Antworten : “JS: Zeitdifferenz in Millisekunden, Sekunden, Minuten, etc. konvertieren mit Modulo”

Trackbacks/Pingbacks

  1. [FRAGE] Datumsdifferenz berechnen - […] JS: Date-Differenz in Millisekunden, Sekunden, Minuten, etc. konvertieren mit Modulo | AxxG Blog…

Kommentar verfassen