Java 减去时间段

Java 减去时间段,java,multidimensional-array,calendar,subtraction,Java,Multidimensional Array,Calendar,Subtraction,我有以下问题: 我有两个名为“hourOne”和“hourTwo”的变量,类型为Calendar[]。它们的日期周期存储在两列中,“开始”和“结束”。我需要减去小时数来找出差异并存储在另一个变量(例如HourTree)中,如下所示 hourOne[0][0] = "08:00" hourOne[0][1] = "12:00" hourTwo[0][0] = "07:00" hourTwo[0][1] = "13:00" 再过一个小时,树就会有了 hourThree[0][0] = "07:0

我有以下问题:

我有两个名为“hourOne”和“hourTwo”的变量,类型为Calendar[]。它们的日期周期存储在两列中,“开始”和“结束”。我需要减去小时数来找出差异并存储在另一个变量(例如HourTree)中,如下所示

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

hourTwo[0][0] = "07:00"
hourTwo[0][1] = "13:00"
再过一个小时,树就会有了

hourThree[0][0] = "07:00"
hourThree[0][1] = "08:00"
hourThree[1][0] = "12:00"
hourThree[1][1] = "13:00"
我怎样才能减去这个周期

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

使用SimpleDataFormat

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();

由于强烈建议通过@ControlAltDel的解决方案, 如果您不想使用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;
}
static String sub(字符串a、字符串b){
字符串[]tmp=a.split(“:”);
int ah=Integer.parseInt(tmp[0]);
intam=Integer.parseInt(tmp[1]);
tmp=b.拆分(“:”);
int bh=Integer.parseInt(tmp[0]);
int bm=Integer.parseInt(tmp[1]);
int cm=am bm;
int=0;
cm=cm%60;

如果(cm@bhdrkn你们读过问题的最后一句话了吗?但有了这句话,我将取时间(例如一小时)…我想减去句点,然后把左边的句点放在第三个变量中,就像我在例子中做的那样