国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁(yè) > 編程 > Java > 正文

java通過(guò)輸入工作日數(shù)(正或負(fù))得到具體日期或計(jì)算兩個(gè)日期之間的工作日

2019-11-11 07:54:20
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

由于工作需要:加減工作日得到具體的日期和計(jì)算兩個(gè)日期之間工作日兩種需求(當(dāng)然參考了其他作者的內(nèi)容,在這里自己做了重新處理):

首先手動(dòng)錄入今年或最近幾年的工作日和調(diào)休日,先在Excel中錄入,格式如下(寫(xiě)END為了補(bǔ)齊第三列,后面加載時(shí)候要用):
節(jié)假日 法定調(diào)休工作日 END
2017/1/28 END
2017/1/29 2017/1/14 END
2017/1/30 2017/1/15 END

2. 把除了表頭“節(jié)假日”“法定調(diào)休工作日”“END”的其他三列拷貝到一個(gè)新的sheet中; 3. 點(diǎn)擊excel中的另存為:文本文件(制表符分割)也就是.txt文件; 4. 加載生成的.txt文件; 5. 加載一次后存入static靜態(tài)代碼塊中; 6. 構(gòu)建了getWorkDayNum(String dateStartStr,String dateEndStr)方法和getWorkDay(String dateStartStr,int n) 方法分別獲取兩個(gè)日期之間的工作日和距離dateStartStr有n個(gè)工作日的日期,如果n為負(fù)數(shù)則再加判斷即可,后面也寫(xiě)了; 7. 具體代碼如下:(當(dāng)然要在啟動(dòng)的時(shí)候加載讀取txt的方法,在grails中是這樣寫(xiě)的,如HolidayWorkdayUtil.initialize(grailsapplication.config.workday.holiday.file as String)

import java.io.File;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.Date;import java.util.List;import java.util.Scanner;import java.util.regex.Pattern;/** * 根據(jù)讀取配置的txt判斷是否為法定節(jié)假日,及法定工作日 * @author */public class HolidayWorkdayUtil { PRivate SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); private static List<String> holidays = new ArrayList<String>(); private static List<String> workdays = new ArrayList<String>(); /** * 獲取剩余的工作日天數(shù) * @param date * @return * @throws ParseException */ public int getWorkDayNum(String dateStartStr,String dateEndStr) throws ParseException{ Date now=sdf.parse(dateStartStr); boolean flag = true; int count=0; String today=""; Date da=sdf.parse(dateEndStr); if(da.getTime()>=now.getTime()){ //System.out.println(holidays); // System.out.println(workdays); Calendar c = Calendar.getInstance(); for(int i=0;i<=3650;i++){ c.setTime(now); c.set(Calendar.DATE, c.get(Calendar.DATE) + i); int dateType = getDateType(c); today = sdf.format(c.getTime()); //System.out.println("date..."+today); //如果文件不存在當(dāng)前日期。判斷是否周六日 if(dateType==0){ if(c.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY|| c.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY){ flag = false; }else{ flag=true; } }else{//如果存在當(dāng)前日期,根據(jù)返回的類型判斷 if(dateType==1){//節(jié)假日 flag = false; }else if(dateType==2){//工作日 flag = true; } } // System.out.println(today+"是:"+(flag==true?"工作日":"節(jié)假日")); if(flag){ count++; } // System.out.println(count); if(today.equals(dateEndStr) || today==dateEndStr){ break; } } } return count-1; } /** * 判斷當(dāng)天是否是工作日 (工作日:true;節(jié)假日:false) * @param filePath * @return * @throws ParseException */ public String getWorkDay(String dateStartStr,int n) throws ParseException{ boolean flag = true; int count=0; String today=""; //System.out.println(holidays); //System.out.println(workdays); Date now=sdf.parse(dateStartStr); Calendar c = Calendar.getInstance(); for(int i=0;i<=3650;i++){//這里是一天一天的加,如果有更好的也可以 c.setTime(now); c.set(Calendar.DATE, c.get(Calendar.DATE) + i); int dateType = getDateType(c); today = sdf.format(c.getTime()); //System.out.println("date..."+today); //如果文件不存在當(dāng)前日期。判斷是否周六日 if(dateType==0){ if(c.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY|| c.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY){ flag = false; }else{ flag=true; } }else{//如果存在當(dāng)前日期,根據(jù)返回的類型判斷 if(dateType==1){//節(jié)假日 flag = false; }else if(dateType==2){//工作日 flag = true; } } // System.out.println(today+"是:"+(flag==true?"工作日":"節(jié)假日")); if(flag){ count++; } // System.out.println(count); if(count==(n+1)){ break; } } return today; } /** * 根據(jù)判斷當(dāng)前時(shí)間是否是節(jié)假日還是工作日 (txt中不存在當(dāng)前日期:0;節(jié)假日:1;工作日:2) * 如果當(dāng)前日期在txt中的節(jié)假日和工作日都寫(xiě)了,默認(rèn)的工作日 * @return */ private int getDateType(Calendar c){ int type = 0; String today = sdf.format(c.getTime()); if(holidays.size()>0){ for(String holiday:holidays){ if(holiday.equals(today)){ type = 1; break; } } } if(workdays.size()>0){ for(String workday:workdays){ if(workday.equals(today)){ type = 2; } } } return type; } /** * 讀取excel中的節(jié)假日和工作日,同時(shí)統(tǒng)一日期格式為2017-01-01 */ public static void initialize(String filePath){ if(filePath==null||"".equals(filePath)){ return ; } Scanner in = null; try { in = new Scanner(new File(filePath)); String result1 = ""; while (in.hasNextLine()) { result1 = in.nextLine() ; String[] strArray=result1.split("/t"); if(strArray==null||strArray.length==0){ return; } //獲取第一列數(shù)據(jù)-節(jié)假日 String analyStartDate=""; String startDateStr=""; try{ analyStartDate=strArray[0].trim(); if(analyStartDate=="" || analyStartDate.equals("") || "http://".contains(analyStartDate)){ analyStartDate=""; }else{ Pattern pa = Pattern.compile("http://D+"); String[] numbers = pa.split(analyStartDate); int a=0; for(String number:numbers){ if(null!=number && !"".equals(number)){ if(a>0 && a<3){ int i = Integer.parseInt(number); if(i<10 && !number.contains("0")){ startDateStr=startDateStr+"-"+"0"+number; }else{ startDateStr=startDateStr+"-"+number; } a++; }else if(a==0){ startDateStr=""+number; a++; }else{ break; } } } if(a<3 || a>=4){ startDateStr=""; } analyStartDate=startDateStr; holidays.add(analyStartDate); } }catch(Exception e){ e.printStackTrace(); } //獲取第二列數(shù)據(jù)-工作日 String workDate=""; String workDateStr=""; try{ workDate=strArray[1].trim(); if(workDate=="" || workDate.equals("") || "http://".contains(workDate)){ workDate=""; }else{ Pattern pa = Pattern.compile("http://D+"); String[] numbers = pa.split(workDate); int a=0; for(String number:numbers){ if(null!=number && !"".equals(number)){ if(a>0 && a<3){ int i = Integer.parseInt(number); if(i<10 && !number.contains("0")){ workDateStr=workDateStr+"-"+"0"+number; }else{ workDateStr=workDateStr+"-"+number; } a++; }else if(a==0){ workDateStr=""+number; a++; }else{ break; } } } if(a<3 || a>=4){ workDateStr=""; } workDate=workDateStr; workdays.add(workDate); } }catch(Exception e){ e.printStackTrace(); } } } catch (Exception e) { e.printStackTrace(); } finally { if (in != null) { in.close(); } } }}

如果輸入的天數(shù)是負(fù)數(shù)則加判斷

HolidayWorkdayUtil h=new HolidayWorkdayUtil();if(n<0){ Calendar c = Calendar.getInstance(); c.setTime(new Date()); c.set(Calendar.YEAR, c.get(Calendar.YEAR) - 1);//如果為負(fù)數(shù),先把時(shí)間調(diào)回到一年前開(kāi)始迭代 def nn=-n; //println nn; for(int i=0;i<=365;i++){ c.add(5, 1); //表示天加一 startDateStr=Util.dateParser1.format(c.getTime()); dayNum = h.getWorkDayNum(startDateStr,todayStr); //println workday if(dayNum==nn){ break; } } workday=startDateStr; }else{ workday = h.getWorkDay(todayStr,n); }
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
中文字幕在线资源| 精品999视频| 精品国内一区二区三区免费视频| 狠狠狠狠狠狠操| 欧美婷婷久久五月精品三区| 亚洲成av人影片在线观看| 97福利电影| av丝袜在线| www免费在线观看| 欧美日韩一区二区三区在线播放| www.xxx黄| 2021天堂中文幕一二区在线观| 日本三级视频网站| 亚洲精品aaaa精品| 欧美日韩一区二区三区视视频| 四虎中文字幕| 精品国语对白精品自拍视| 中文字幕2020第一页| 在线一二三区| 久热国产视频| 国产精品伦一区二区三区级视频频| 国产精彩视频在线观看免费蜜芽| 在线免费观看黄色av| 开心激情五月婷婷| 精品卡一卡卡2卡3网站| 青青草原av在线| 国产精品99爱免费视频| www.香蕉视频在线观看| 国产日韩欧美一区二区三区视频| 国产h在线观看| 欧美一级久久久久久久久大| 91啦中文在线| 日本福利午夜视频在线| 国产永久av在线| 中文天堂av| 国产精品午夜久久久久久| 91中文字幕| 国产一二三区在线| 久热中文字幕精品视频在线| 国产黄色免费网| 开心激情五月婷婷| 四虎国产精品永久| 99高清免费国产自产拍| 国产欧美在线观看视频| 国产麻豆麻豆| av色在线观看| 国产成人综合美国十次| 国产精品久久久久白浆| 最近中文字幕av免费高清| 久久av少妇| 欧美性xxxx交| 女人色在线免费视频| 先锋影音av中文字幕| 伊人影院在线播放| av在线免费播放| av在线不卡免费| 不卡av免费观看| 九九视频精品在线| 国产免费av网站| 国产一区电影| 在线中文免费视频| 日本在线天堂| 日本a级黄色| 懂色av中文在线| 国产私人影院| 97国产视频| www.蜜桃av| 丁香婷婷激情| 国产成人综合亚洲欧美在| 99综合精品久久| 久久亚洲资源| 国产激情二区| www.91在线播放| 国产网红女主播精品视频| 在线观看免费高清完整| 久久综合精品视频| 国产精品欧美色图| 青青久在线视频免费观看| 四虎成人精品在永久在线观看| 亚洲v片在线观看| 久久久久久久久久久久久91| 国产乱妇乱子在线播视频播放网站 | 超碰在线免费播放| 国产桃色电影在线播放| 亚洲男人的天堂成人| 丁香视频五月| 四虎网站在线观看| 国产网站免费观看| 热99在线观看| 国产一级大片| 亚洲国产精品区| 中文字幕在线视频网| 青草视频在线播放| 999精品网| 国产深夜视频在线观看| 白浆爆出在线观看| 国产黄视频在线观看| 国产中文在线观看| 全网国产福利在线播放| 精品一区二区三区在线成人 | av在线日韩国产精品| 精品一区二区三区在线观看l| 日本视频一二三区中文字幕| 国产区av在线| 中文字幕第一页在线| 亚洲欧美精品日韩欧美| 国产亚洲精品久久久久久青梅 | 国产精品一区二区婷婷| av在线电影观看| 国产第一页在线视频| 天天操天天是| 成年人在线观看| 九色视频网站| 九九热精品在线视频| 免费特级黄毛片| 免费国产在线视频| 开心快乐六月丁香婷婷| 国产在线第一页| 在线91av| 国产h色视频在线观看| 国产黄在线观看免费观看不卡| 777电影在线观看| 天天av天天爱| 国产乱视频在线观看| 超碰免费在线| 免费男女羞羞的视频网站中文字幕| 日本国产在线| 国产永久免费高清在线观看| 国产中文字幕在线播放| 国产在线播放av| 国产区av在线| 在线观看国产视频| 热99re久久精品这里都是免费| 超碰免费在线播放| 国产精品va在线观看视色| 中文字幕av高清在线观看| 在线播放黄色网址| 久艹在线视频| 国产www.大片在线| 老司机精品视频一区二区| 国产69精品久久久久孕妇国产69久久| 九九色在线观看| 精品一区二区在线欧美| 福利资源在线久| 在线黄色av| 1区不卡电影| www中文字幕在线观看| 国产wwww| 国产理论在线观看| 碰草在线视频| 在线观看中文| 最近免费中文字幕在线第一页 | 国产区在线观看| 性国产高清在线观看| 天堂在线视频| 一级二级三级在线观看| 午夜视频99| 黄色毛片在线| av三级在线观看| 国产不卡视频| 国产色a在线| 中文字幕一区免费| 一本大道五月香蕉| 国产98在线| 国产丝袜在线观看视频| 九色在线网站| 日韩中文字幕久久久经典网| 精精国产xxxx视频在线动漫| 91蜜桃在线视频| 国产精品18久久久久网站| 国产丝袜自拍| 国产成人综合美国十次| 97国产在线| 天天艹天天操| 精品中文字幕不卡在线视频| 免费观看v片在线观看| a视频免费看| 亚洲国产精品区| 亚洲sss视频| 在线视频色在线| 依依成人在线| 永久免费网站在线| wwww亚洲| 国产小视频免费在线观看| 国产一区二区影视| 国产网站在线播放| av二区三区| 亚洲一区免费在线| 麻豆福利在线观看| 成在在线免费视频| 国产三级免费观看| 伊人影院在线播放| 亚洲大香人伊一本线| 久久香蕉一区| 91中文字幕| 国产精品亚洲第五区在线| 精品伦理一区二区| 成网站在线观看人免费| 2019天天操夜夜操| 另类专区欧美|