如何计算字符串时间之间的差异

时间:2016-02-06 13:23:18

标签: java string int

我有一串:“上午9点至下午5点” 我想减去这两个数字并找出小时数的差异。

2 个答案:

答案 0 :(得分:1)

int intervalHours(String input) {
    String[] ts = input.split("-");         // {"9AM", "5PM"}
    return toHours(ts[1]) - toHours(ts[0]);

}

int toHours(String t) {
    int h = Integer.parseInt(t.substring(0, t.length() - 2));
    if (t.endsWith("PM"))
        return h == 12 ? 12 : (h + 12);
    else 
        return h == 12 ? 0 : h;
}

// ...

System.out.println(intervalHours("9AM-5PM"));

答案 1 :(得分:-1)

public void time()
{
    String t="12AM-5PM";``

    StringTokenizer st=new StringTokenizer(t,"-");

    String initialTime=st.nextToken();
    String finalTime=st.nextToken();
    int t1=0;
    int t2=0;

    if(initialTime.contains("AM"))
    {
        t1=Integer.valueOf(initialTime.replace("AM",""));
    }
    else
    {
        t1=Integer.valueOf(initialTime.replace("PM",""))+12;

    }


    if(finalTime.contains("AM"))
    {
        t2=Integer.valueOf(finalTime.replace("AM",""));
    }
    else
    {
        t2=Integer.valueOf(finalTime.replace("PM",""))+12;
    }

    System.out.println(t2-t1);
}