我想比较以空格分隔的文本文件中给出的时间值。
驾驶者Tommy Journey Tommy 08:15 08:45 18.3
我知道我可以通过创建扫描程序来读取文件来指定对象。
try
{
File fin = new File("data.txt");
Scanner scan = new Scanner(fin);
ArrayList<String> theData = new ArrayList<String>();
//read the column headings from the flat text file
String line = scan.nextLine();
while(scan.hasNextLine())
{
line = scan.nextLine();
String[] list = line.split(" "); //this is space delimited
//objects in the text file
String driver = list[1];
String trip = list[3];
}
}
在确保驱动程序和trip字符串值相同之后,我想比较时间值,但我不知道如何将这些作为原始数据类型访问。我想做像
这样的事情long initTime = list[4];
但是这个值中有冒号,我可以尝试比较给定文本文件中的时间值吗?
答案 0 :(得分:2)
您需要确定两次之间的分钟数?在持续时间?你可能想要使用Java 8的LocalTime。首先解析日期:
LocalTime time1 = LocalTime.parse(list[4]);
LocalTime time2 = LocalTime.parse(list[5]);
然后得到他们之间的分钟:
long minutes = time1.until(time2, ChronoUnit.MINUTES);
这将为您提供第一次和第二次之间的分钟数。假设第一次总是早于第二次,并且它们代表相同的日历日。
编辑:如果只想使用基元,请将日期解析为两个整数,用冒号分割。将小时数乘以60,然后添加分钟以得到表示自午夜起的分钟数的initTime。