怎樣求2個日期間隔的工作日數 解決

2021-08-23 13:51:33 字數 2677 閱讀 9054

還有很多要完善的地方,還有簡單的實現沒?希望各位幫我提提意見。。。。。

/*步驟: 類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 沒有包含法...