/**
*
* 功能作用:
* 日期计算
* @version: 1.0
* @create date: 2014-2-26
* @author: lili
* @remark:
*/
public class DateSum {
public static void main(String[] args) {
// String tmp = "21:52:11";
// tmp = tmp.substring(0,tmp.indexOf(":"));
// System.out.println(tmp);
//
// int t = Integer.parseInt(tmp);
// int day = t/8;
// int t2 = t%8;
// System.out.println(day+"天"+t2+"小时");
// String str1 = "0天8时5分0秒";
// String str2 = "1天0时0分1秒";
// String sum = dateSum(str1, str2);
// System.out.println(sum);
String str = getTimeCa("5","17天9时35分26秒");//5-17天9时35分26秒
System.out.println(str);
}
private static String getTimeCa(String yearH,String yearHUse){
if(null == yearH || "".equals(yearH) || yearH.equalsIgnoreCase("null") || "0".equals(yearH)){
if(null == yearHUse || "".equals(yearHUse) || yearHUse.equalsIgnoreCase("null") || "0".equals(yearHUse)){
return "";
}else{
return "-"+yearHUse;
}
}
String str = "";
String dayStr2 = DateSum.getDayNum(yearHUse);
String hStr2 = DateSum.getHnum(yearHUse);
// String mStr2 = DateSum.getMnum(yearHUse);
// String sStr2 = DateSum.getSnum(yearHUse);
int day2 = Integer.parseInt(dayStr2);
int h2 = Integer.parseInt(hStr2);
int day = 0;
int h = 0;
if(h2>0){
int day1 = Integer.parseInt(yearH);
day1 = day1 - 1;
int h1 = 7;//7 工作小时
day = day1 - day2;
h = h1 - h2;
}else{
int day1 = Integer.parseInt(dayStr2);
day = day1 - day2;
}
str = day +"天";
if(h >0){
str += h +"小时";
}
return str;
}
public static String dateSum(String a, String b) {
if(null == a || "".equals(a.trim()) || a.equalsIgnoreCase("null")
|| "0".equals(a)
){
if(null == b || "".equals(b) || b.equalsIgnoreCase("null") || "0".equals(b) ){
return "";
}else{
return b;
}
}
if(null == b || "".equals(b.trim()) || b.equalsIgnoreCase("null") || "0".equals(b)){
return a;
}
String day1 = "0";
String h1 = "0";
String m1 = "0";
String s1 = "0";
if( a.indexOf("天") == -1){//表示没有找到天
day1 = a;
}else{
day1 = getDayNum(a);
h1 = getHnum(a);
m1 = getMnum(a);
s1 = getSnum(a);
}
String day2 = "0";
String h2 = "0";
String m2 = "0";
String s2 = "0";
if( b.indexOf("天") == -1){//表示没有找到天
day2 = b;
}else{
day2 = getDayNum(b);
h2 = getHnum(b);
m2 = getMnum(b);
s2 = getSnum(b);
}
int s = Integer.parseInt(s1) + Integer.parseInt(s2);
int m = Integer.parseInt(m1) + Integer.parseInt(m2);
int h = Integer.parseInt(h1) + Integer.parseInt(h2);
int day = Integer.parseInt(day1) + Integer.parseInt(day2);
//
System.out.println(">>>>111>>>>" + day + "天" + h + "时" + m + "分" + s
+ "秒");
if (s >= 60) {// 秒
s = 0;
m = m + 1;
}
if (m >= 60) {// 分
m = 0;
h = h + 1;
}
if (h >= 7) {// 超过7小时自动统计加1天
int d1 = h / 7;
// System.out.println("d1:"+d1);
h = h % 7;
// System.out.println("h:"+h);
day = day + d1;
// h=0;
}
String newStr = day + "天" + h + "时" + m + "分" + s + "秒";
System.out.println(">>>>222>>>>" +newStr);
return newStr;
}
public static String getDayNum(String day) {// 获得天
// "0天8时5分0秒";
// String tmp = day.replaceAll("天[0-9]{1,3}时[0-9]{1,3}分[0-9]{1,3}秒",
// "");
System.out.println("11111111111111111:"+day);
String tmp = day.substring(0, day.indexOf("天"));
return tmp;
}
public static String getHnum(String str) {// 获得小时
// String h1 = str.replaceAll("[0-9]{1,6}天", "");
// h1 = h1.replace("时[0-9]{1,3}分[0-9]{1,3}秒", "");
String h1 = str.substring(str.indexOf("天") + 1, str.indexOf("时"));
return h1;
}
public static String getMnum(String str) {// 分
// String m1 = str.replace("[0-9]{1,6}天[0-9]{1,3}时", "");
// m1 = m1.replace("分[0-9]{1,3}秒", "");
String m1 = str.substring(str.indexOf("时") + 1, str.indexOf("分"));
return m1;
}
public static String getSnum(String str) {// 秒
// String s1 = str.replace("[0-9]{1,6}天[0-9]{1,3}时[0-9]{1,3}分", "");
// s1 = s1.replace("秒", "");
String s1 = str.substring(str.indexOf("分") + 1, str.indexOf("秒"));
return s1;
}
}