减去时间段

时间:2014-12-05 15:42:13

标签: java multidimensional-array calendar subtraction

我遇到以下问题:

我有两个变量叫做" hourOne"和" hourTwo"日历类型[] []。它们将日期存储在两列中,"开始"和"结束"。我需要减去小时数以找到差异并存储在另一个变量(例如hourThree)中,如此

hourOne[0][0] = "08:00"
hourOne[0][1] = "12:00"

hourTwo[0][0] = "07:00"
hourTwo[0][1] = "13:00"

在hourThree中有

hourThree[0][0] = "07:00"
hourThree[0][1] = "08:00"
hourThree[1][0] = "12:00"
hourThree[1][1] = "13:00"

如何减去这段时间?

详细信息:我不能使用JodaTime API,并且变量没有定义的行数(一行可能比另一行更多)。

2 个答案:

答案 0 :(得分:0)

使用SimpleDateFormat

SimpleDateFormat sdf = new SimpleDateFormat("kk:mm");
ParsePosition idx = new ParsePostion(0);
long time = sdf.parse(hourOne[0][0], idx).getTime() - sdf.parse(hourOne[0][1], idx).getTime();

答案 1 :(得分:0)

强烈建议@ControllAltDel传递解决方案, 如果您不想使用Dateformat,您可以基于此

实现时间关节的简单方法
static String sub (String a,String b){
    String[] tmp = a.split(":");
    int ah = Integer.parseInt(tmp[0]);
    int am = Integer.parseInt(tmp[1]);
    tmp = b.split(":");
    int bh = Integer.parseInt(tmp[0]);
    int bm = Integer.parseInt(tmp[1]);

    int cm = am-bm;
    int reminder = 0;

    cm=cm%60;
    if (cm<0) {
        reminder--;
            cm+=60;
    }

    int ch = ah-bh+reminder;
    return ch+":"+cm;
}