Java 输入两个日期,计算出期间的周数
生活随笔
收集整理的這篇文章主要介紹了
Java 输入两个日期,计算出期间的周数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
只要涉及到其他周的天,都算期間的周數:
static int calculate(Calendar c){int dayForWeek;if(c.get(Calendar.DAY_OF_WEEK) == 1){dayForWeek = 7;}else{dayForWeek = c.get(Calendar.DAY_OF_WEEK) - 1;}return dayForWeek;}static Calendar From(Calendar c){switch(calculate(c)){case 1:c.set(Calendar.DAY_OF_YEAR, c.get(Calendar.DAY_OF_YEAR)-0);break;case 2:c.set(Calendar.DAY_OF_YEAR, c.get(Calendar.DAY_OF_YEAR)-1);break;case 3:c.set(Calendar.DAY_OF_YEAR, c.get(Calendar.DAY_OF_YEAR)-2);break;case 4:c.set(Calendar.DAY_OF_YEAR, c.get(Calendar.DAY_OF_YEAR)-3);break;case 5:c.set(Calendar.DAY_OF_YEAR, c.get(Calendar.DAY_OF_YEAR)-4);break;case 6:c.set(Calendar.DAY_OF_YEAR, c.get(Calendar.DAY_OF_YEAR)-5);break;case 7:c.set(Calendar.DAY_OF_YEAR, c.get(Calendar.DAY_OF_YEAR)-6);}return c;}static Calendar To(Calendar c){switch(calculate(c)){case 1:c.set(Calendar.DAY_OF_YEAR, c.get(Calendar.DAY_OF_YEAR)+6);break;case 2:c.set(Calendar.DAY_OF_YEAR, c.get(Calendar.DAY_OF_YEAR)+5);break;case 3:c.set(Calendar.DAY_OF_YEAR, c.get(Calendar.DAY_OF_YEAR)+4);break;case 4:c.set(Calendar.DAY_OF_YEAR, c.get(Calendar.DAY_OF_YEAR)+3);break;case 5:c.set(Calendar.DAY_OF_YEAR, c.get(Calendar.DAY_OF_YEAR)+2);break;case 6:c.set(Calendar.DAY_OF_YEAR, c.get(Calendar.DAY_OF_YEAR)+1);break;case 7:c.set(Calendar.DAY_OF_YEAR, c.get(Calendar.DAY_OF_YEAR)+0);}return c;}static Long getResult(String startDate,String endDate) throws ParseException {Calendar c1 = Calendar.getInstance();Calendar c2 = Calendar.getInstance();SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");c1.setTime(sdf.parse(startDate));c2.setTime(sdf.parse(endDate));long cc1=From(c1).getTimeInMillis()/(1000*3600*24);long cc2=To(c2).getTimeInMillis()/(1000*3600*24);return (cc2-cc1+1)/7;}測試:
?
剛好一周:
public static void main(String[] args) throws ParseException {Long result = getResult("2020-02-10", "2020-02-16");System.out.println("涉及的周數為:"+result);}?
?
剛好兩周:
public static void main(String[] args) throws ParseException {Long result = getResult("2020-02-10", "2020-02-23");System.out.println("涉及的周數為:"+result);}?
兩周再多兩天:
public static void main(String[] args) throws ParseException {Long result = getResult("2020-02-10", "2020-02-25");System.out.println("涉及的周數為:"+result);}總結
以上是生活随笔為你收集整理的Java 输入两个日期,计算出期间的周数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle修改sql域名,oracle
- 下一篇: 网络虚拟化技术