题目:给定两个日期,计算两个日期间的工作日天数。
示例:
输入:
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);
}
}