题目:给定两个日期,计算两个日期间的工作日天数。 示例:
输入: 2020,9,25,2020,9,28 输出: 2 import java.text.SimpleDateFormat; import java.util.Calendar; public class Solution { public int getDutyDays(int y1,int m1,int d1,int y2,int m2,int d2) { String strStartDate = String.valueOf(y1)+"-"+String.valueOf(m1)+"-"+String.valueOf(d1); String strEndDate = String.valueOf(y2)+"-"+String.valueOf(m2)+"-"+String.valueOf(d2); SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); Calendar cl1 = Calendar.getInstance(); Calendar cl2 = Calendar.getInstance(); try { cl1.setTime(df.parse(strStartDate)); cl2.setTime(df.parse(strEndDate)); } catch (Exception e) { e.printStackTrace(); } /*因为Calendar中DAY_OF_WEEK默认对应的数值情况是: SUN MON TUE WED THU FRI SAT DAY_OF_WEEK返回值: 1 2 3 4 5 6 7 */ int count = 0; while (cl1.compareTo(cl2) <= 0) { if (cl1.get(Calendar.DAY_OF_WEEK) != 7 && cl1.get(Calendar.DAY_OF_WEEK) != 1) count++; cl1.add(Calendar.DAY_OF_WEEK,1); } return count; } public static void main(String[] args) { Solution solution = new Solution(); int count = solution.getDutyDays(2020,9,25,2020,9,28); System.out.println(count); } }