我在这里的第一篇文章,如果我在之前的答案中错过了一些相当明显的内容,请道歉。我有几个电影和专辑的运行时间以下列方式表示。
HH:MM:SS
HH:MM
5小时
5小时55分钟
55分钟
555分钟。
我需要一个脚本,它接受编译器接收的这些格式中的任何一种,并将其转换为表示分钟的简单int。 回顾以前关于将时间转换为分钟的问题,到目前为止我在这里......
for(runtime != null)
{
//Get rid of "mins", "hrs"..
runtime.replaceAll("[a-zA-Z]", "");
//Split time into parts dependent on the length of runtime..
String[] parts = runtime.split(":",runtime.length());
String hrs = parts[0];
String mins = parts[1];
String secs = parts[2];
if (hrs != null)
{
// hrs * 60
}
if (secs != null)
{
//secs / 60
}
//convert all to int
//hrs + mins + secs
}
我对此很新,但是如果我没有弄错的话,被拆分的数字可能意味着在运行时的某些表示中,分钟,小时和秒可能会变得混乱。真的不确定在哪里跟着这个。非常感谢帮助
答案 0 :(得分:0)
如果你想在几分钟内转换时间,你应该这样做,
int hr, sec;
if (hrs != null)
{
hr = hrs * 60
}
if (secs != null)
{
sec = (secs % 60) * 0.01;
}
//convert all to float
int time = hr + mins + sec;
这会将2小时20分20秒转换为140.20
分钟
答案 1 :(得分:0)
正如我在评论中建议的那样,使用Joda-Time,您的代码将是:
long numberOfMinutes = new Duration(new DateTime(date1), new DateTime(date2)).getStandardMinutes();
答案 2 :(得分:0)
正如您所说,您的运行时可以采用任何格式,
所以如果你的时间在5hrs:32min
那么你可能会有
Index out of bounds exception
所以假设你会在HH : MM : SS
String[] parts = runtime.split(":",runtime.length());
int length=parts.length;
String hrs=null,mins=null,secs=null
switch(length){
case 3:
hrs = parts[0];
mins = parts[1];
secs = parts[2];
break;
case 2:
// populate 1st 2
case 1:
// populate only 1st one
}
现在是时候计算,解析你可以通过Integer.parseInt(hrs)
和mins
的{{1}}进行解析。
secs