RLPark 1.0.0
Reinforcement Learning Framework in Java

Chrono.java

Go to the documentation of this file.
00001 /*
00002  * 
00003  * Created on 21 sept. 2005
00004  *
00005  */
00006 package zephyr.plugin.core.api.synchronization;
00007 
00008 public class Chrono {
00009   private long creationTime;
00010 
00011   public Chrono() {
00012     start();
00013   }
00014 
00015   public Chrono(long creationTime) {
00016     start(creationTime);
00017   }
00018 
00019   public void start() {
00020     start(System.nanoTime());
00021   }
00022 
00023   public void start(long creationTime) {
00024     this.creationTime = creationTime;
00025   }
00026 
00027   public long getCurrentNano() {
00028     return System.nanoTime() - creationTime;
00029   }
00030 
00031   public long getCurrentMillis() {
00032     return getCurrentNano() / 1000000;
00033   }
00034 
00035   public double getCurrentChrono() {
00036     return getCurrentNano() / 1000000000.0;
00037   }
00038 
00039   @Override
00040   public String toString() {
00041     return toStringMillis(getCurrentMillis());
00042   }
00043 
00044   public static String toStringMillis(long millisTime) {
00045     if (millisTime < 1000)
00046       return String.valueOf(millisTime) + "ms";
00047     int seconds = (int) (millisTime / 1000.0);
00048     int hours = seconds / 3600;
00049     seconds = seconds - hours * 3600;
00050     int minutes = seconds / 60;
00051     seconds = seconds - minutes * 60;
00052     StringBuilder result = new StringBuilder();
00053     if (hours != 0)
00054       result.append(hours + "h");
00055     if (minutes != 0)
00056       result.append(minutes + "m");
00057     result.append(seconds + "s");
00058     return result.toString();
00059   }
00060 
00061   public static String toPeriodString(long periodNano) {
00062     if (periodNano < 1000000)
00063       return "0." + String.valueOf(periodNano / 1000) + "ms";
00064     if (periodNano < 1000000000)
00065       return String.valueOf(periodNano / 1000000) + "ms";
00066     return String.valueOf(periodNano / 1000000000) + "s";
00067   }
00068 
00069   static public long longTimeAgo() {
00070     return System.nanoTime() - ((long) 365 * (long) 24 * 3600 * 1000000000);
00071   }
00072 }
 All Classes Namespaces Files Functions Variables Enumerations
Zephyr
RLPark