NewJava:
Dada uma data e hora no formato de string como "20 10 50", eu converti-lo com sucesso em um SDF, referindo-se à internet. Agora como faço para operar na mesma data que acabou de criar?
X=3600*HH+60*MM+SS
public static void main(String[] args) throws ParseException {
int numberOfTests=3;
String [] timeStamps=new String[3];
timeStamps[0]="10 10 10";
timeStamps[1]="10 10 16";
timeStamps[2]="10 10 50";
int [] X=new int[3];
DateFormat sdf = new SimpleDateFormat("hh mm ss");
Date t1=sdf.parse(timeStamps[0]);
Date t2=sdf.parse(timeStamps[1]);
Date t3=sdf.parse(timeStamps[2]);
//X=3600*HH+60*MM+SS
Este é o quão longe eu cheguei. Eu sei o que tenho que fazer depois disso, eu tenho tudo resolvido, mas eu estou ficando preso aqui.
Tentei fazê-lo usando split
a princípio, mas tornou-se complexa, mais tarde, então eu preso a este método.
azro:
Se você só quer aplicar X = 3600*HH + 60*MM + SS
você não precisa passar por uma data (ou Date
ou LocalTime
) é só usar oString
for (int i = 0; i < timeStamps.length; i++) {
String[] parts = timeStamps[i].split(" ");
X[i] = Integer.parseInt(parts[0]) * 3600 + Integer.parseInt(parts[1]) * 60 + Integer.parseInt(parts[2]);
}
System.out.println(Arrays.toString(X)); // [36610, 36616, 36650]
Para ver um exemplo com uma análise, você verá que você obtenha o mesmo, mas mais caro com uma análise de LocalTime
DateTimeFormatter fmt = DateTimeFormatter.ofPattern("HH mm ss");
for (int i = 0; i < timeStamps.length; i++) {
LocalTime time = LocalTime.parse(timeStamps[i], fmt);
X[i] = time.getHour() * 3600 + time.getMinute() * 60 + time.getSecond();
}
System.out.println(Arrays.toString(X)); // [36610, 36616, 36650]