還有很多要完善的地方,還有簡單的實現沒?希望各位幫我提提意見。。。。。
/*步驟: 類countdaysbydate
* 1、中間天數處理
* 2、開始時間處理
* 3、結束時間處理
*/private static int val = new int ;// 預設休息日為 六,日
private static double work_day_count = 7.5; //定義一天的有幾個小時
//設定上下班時間、中午休息時間
private static int am_start_hour = 9;
private static int am_start_minute = 0;
private static int am_end_hour = 12;
private static int am_end_minute = 0;
private static int pm_start_hour = 13;
private static int pm_start_minute = 0;
private static int pm_end_hour = 17;
private static int pm_end_minute = 30;
private static double noon_rest = 1;
/*** 計算2個日期相差天數(排除休息日)
* @param begindatestr
* @param enddatestr
* @return
* 步驟:
* 1、中間天數處理
* 2、開始時間處理
* 3、結束時間處理
*/@suppresswarnings("deprecation")
public static double getdaysbydate(string begindatestr,string enddatestr)
double total = (bvalue)/((double)work_day_count*60);
result = ((int)(total*100))/(double)100;
}else
}return result;
}/**
* 設定時間在工作時間範圍內
* @param base
* @param amsw
* @param amew
* @param pmsw
* @param pmew
* @return
*/public static calendar setovertime(string base)else if(cal.after(amew) && cal.before(pmsw))else if(cal.after(pmew) )else if(cal.compareto(amew)==0 || cal.compareto(pmsw)==0)
return cal;
}/**
* 取得2個日期之間的休息日數目
* @param sdate
* @param edate
* @return
*/@suppresswarnings("static-access")
public static int getrestdays(string bdatestr,string edatestr)
}bdate.add(bdate.date,1);
}return days;
}/**
* 計算2個日期之間的天數(排除休息日),例如:2009-04-07 15:00:00 ~ 2009-04-09 15:00:00之間只有2009-04-08一天,則返回1,此處可加入排除節假日的方法。。。。。。
* @param bdatestr
* @param edatestr
* @return
*/@suppresswarnings("static-access")
public static int getmargin(string bdatestr, string edatestr)
}bdate.add(bdate.date,1);
}return (int)(margin-resdays);
} catch (exception e)
}/**
* 根據日期字串得到它的calendar物件
* * @param date
* @param df
* @return
*/public static calendar getcalendar(string date) catch(exception ex)
} catch (parseexception e)
return da;
}/**
* calendar時分設定輔助方法
* @param cal
* @param hour
* @param minute
* @return
*/public static calendar sethourandminute(calendar cal,int hour,int minute)
public static void main(string args)
計算兩個日期之間的工作日數
計算兩個日期之間的工作日數,星期6,星期天,不算工作日 dt1和dt2之間相隔多少工作日,其中dt3 dt4的時間為公休日,這裡公休日可以用以個陣列,或者從乙個xml表裡面讀取,以便扣除 要計算的起始時間 要計算的結束時間 公休起始時間 公休結束時間 intreturn private int di...
MySQL函式查詢兩個日期之間的工作日數
5 datediff e,s div7 mid 0123444401233334012222340111123400012345001234550 7 weekday s weekday e 1,1 計算開始日期 s和結束日期 e之間的工作日數。假設結束日期 e 不在開始日期之前 s 與datedi...
python獲取兩個日期間的工作日
import datetime 計算兩個日期之間的工作日數,非天數.class workdays def init self,start date,end date,days off none days off 休息日,預設週六日,以0 星期一 開始,到6 星期天 結束,傳入tupple 沒有包含法...