/*
* A collection of utilities that don't relate to anything in particular.
*/
/*
Copywrite 2012 Will Winder
This file is part of Universal Gcode Sender (UGS).
UGS 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.
UGS 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 UGS. If not, see <http://www.gnu.org/licenses/>.
*/
package com.willwinder.universalgcodesender;
import com.willwinder.universalgcodesender.i18n.Localization;
import java.io.*;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.text.DecimalFormat;
import java.text.NumberFormat;
import java.util.List;
/**
*
* @author wwinder
*/
public class Utils {
public static NumberFormat formatter = new DecimalFormat("#.###", Localization.dfs);
public static String timeSince(long from){
long elapsedTime = millisSince(from);
return Utils.formattedMillis(elapsedTime);
}
public static long millisSince(long from) {
long until = System.currentTimeMillis();
return until - from;
}
public static String formattedMillis(long millis) {
String format = String.format("%%0%dd", 2);
long elapsedTime = millis / 1000;
String hours = String.format(format, elapsedTime / 3600);
elapsedTime %= 3600;
String minutes = String.format(format, elapsedTime / 60);
elapsedTime %= 60;
String seconds = String.format(format, elapsedTime);
String time = hours + ":" + minutes + ":" + seconds;
return time;
}
// Processes input file.
// This could theoretically scan it for errors, but GcodeSender just counts
// how many lines are in it.
public static List<String> processFile(File file) throws FileNotFoundException, IOException {
Charset encoding;
try (FileReader fileReader = new FileReader(file)) {
encoding = Charset.forName(fileReader.getEncoding());
}
return Files.readAllLines(file.toPath(), encoding);
}
}