/* *@(#)WorkDay.java *Copyright (c) 2007-2008 *All right reserved */ package time; import java.text.SimpleDateFormat; import java.util.*; /** *Class description goes here * *@author Bug Liu *@version ewms 2.0 *@time 2011-7-6 *@description */ public class WorkDay { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println(getDay("2011-07-01","2011-07-01")); } /** * * @param time1 开始时间 * @param time2结束时间 * @return */ public static int getDay(String time1, String time2) { int day = 0; if(time1==time2){ if(!ifWeek(time1)){ day = 0; }else{ day = 1 ; } }else{ String nexttime = getNextDatetostring(time1); while(!CompareToDate(nexttime,time2)){ if(!ifWeek(nexttime)){ day++; } nexttime = getNextDatetostring(nexttime); } } return day; } /** * 是否周末 * @param str * @return */ public static boolean ifWeek(String str){ if(getWeekOfDay(str)==6||getWeekOfDay(str)==7){ return true; }else{ return false ; } } /** * 计算星期几 * @param str * @return */ public static int getWeekOfDay(String str) { String[] arr = str.split("-"); Calendar cal = Calendar.getInstance(); cal.set(Integer.parseInt(arr[0]), Integer.parseInt(arr[1]) - 1, Integer .parseInt(arr[2])); return cal.get(Calendar.DAY_OF_WEEK); } /** * @return 系统给定日期的下一天 */ public static String getNextDatetostring(String date) { java.util.Date now = getDateByString(date); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String xtsj = sdf.format(dateAdd(now,1,0)); return xtsj; } /** * 返回给定的日期在指定时间段后的日期,指定con为0时为天,1-月,2-年 * Description * * @param d 日期 * @param x 给定数目 * @param con 给定操作 * @return */ public static Date dateAdd(Date date, int x, int con) { Calendar cal = Calendar.getInstance(); cal.setTime(date); if (con == 0){ int d = cal.get(Calendar.DAY_OF_MONTH); d = d + x; cal.set(Calendar.DAY_OF_MONTH, d); } if (con == 1){ int m= cal.get(Calendar.MONTH); m= m+x; cal.set(Calendar.MONTH, m); } if (con == 2){ int y = cal.get(Calendar.YEAR); y = y +x; cal.set(Calendar.YEAR, y); } return cal.getTime(); } /** * 根据给定的字符串生成日期,字符串的格式为yyyy-mm-dd * Description * * @param str * @return */ public static Date getDateByString(String str) { String[] arr = str.split("-"); Calendar cal = Calendar.getInstance(); cal.set(Integer.parseInt(arr[0]), Integer .parseInt(arr[1]) - 1, Integer.parseInt(arr[2])); return cal.getTime(); } /**@description 比较日期大小 * * @param date_1 * @param date_2 * @return 前面日期大,返回true */ public static boolean CompareToDate(String date_1,String date_2){ boolean temp = false ; int result = date_1.compareTo(date_2); if (result > 0) { temp = true; }else{ temp = false; } return temp ; } }
工作日计算 去掉周末
随便写了个class,比较啰嗦,可以用
猜你喜欢
转载自alert008.iteye.com/blog/1117338
今日推荐
周排行