Parent: [a7a9ff] (diff)

Download this file

TimeConverter.java    105 lines (86 with data), 3.0 kB

  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
/*
* Copyright 2013-2014 TECO - Karlsruhe Institute of Technology.
*
* This file is part of TACET.
*
* TACET is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* TACET is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with TACET. If not, see <http://www.gnu.org/licenses/>.
*/
package squirrel.model.io;
import squirrel.model.io.DataColumn.Unit;
/**
* TimeConverter to convert the timestamp to milliseconds
* @author marc
*
*/
public class TimeConverter {
private Unit[] timeUnit;
/**
* Constructs the TimeConverter
* @param timeUnit the Units of the Time
*/
public TimeConverter(Unit[] timeUnit) {
this.timeUnit = timeUnit;
}
/**
* Return the milliseconds from the time array
* @param time timestamp split in its units
* @return the milliseconds of the timestamp
*/
public long getMilliseconds(Long[] time) {
long milliseconds = 0;
if (time.length > timeUnit.length) {
throw new IllegalArgumentException(
"TimeUnits not the same amount of units as timestamp");
}
for (int i = 0; i < time.length; i++) {
if (timeUnit[i] != null) {
milliseconds += timeUnit[i].toMillis(time[i]);
}
}
return milliseconds;
}
/**
* Return the milliseconds from the time array
* @param timeS timestamp split in its units
* @return the milliseconds of the timestamp
*/
public long getMilliseconds(String[] timeS, int lastLength) {
Long[] timeL = new Long[timeS.length];
for (int i = 0; i < timeS.length; i++) {
if(i == timeS.length-1 && i!=0){
if(timeUnit[timeUnit.length-1]==Unit.MILLISECONDS){
timeS[timeS.length-1] = convertToRightLength(timeS[timeS.length-1], 3);
} else if(timeUnit[timeUnit.length-1]==Unit.HUNDRETH_SECONDS){
timeS[timeS.length-1] = convertToRightLength(timeS[timeS.length-1], 2);
}
}
timeL[i] = Long.parseLong(timeS[i]);
}
return getMilliseconds(timeL);
}
private String convertToRightLength(String time, int zeros){
if(zeros == 2){
if(time.length()==1){
time += "0";
}
} else if(zeros == 3){
if(time.length()==1){
time += "00";
} else if(time.length()==2) {
time += "0";
}
}
return time;
}
}