計算兩個日期間的 天數
一、去除周末
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
public class IntervalDay {
public static void main(String[] args) throws ParseException {
int dutyDays = getDutyDays("2020-08-20","2020-08-24");
System.out.println(dutyDays);//3天
}
@SuppressWarnings("deprecation")
private static int getDutyDays(String startDateStr, String endDateStr) throws ParseException {
int result = 0;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date startDate = df.parse(startDateStr);
Date endDate = df.parse(endDateStr);
while (startDate.compareTo(endDate) <= 0) {
if (startDate.getDay() != 6 && startDate.getDay() != 0)
result++;
startDate.setDate(startDate.getDate() + 1);
}
return result;
}
}
二、去除周末 和法定節假日(包含調休)
public static int request(String startDateStr, String endDateStr) throws ParseException {
int result = 0;
String temp = null;
Integer type = null;
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
Date startDate = df.parse(startDateStr);
Date endDate = df.parse(endDateStr);
while (startDate.compareTo(endDate) <= 0) {
BufferedReader reader = null;
StringBuffer sbf = new StringBuffer();
String httpUrl="http://timor.tech/api/holiday/info/";
httpUrl = httpUrl + df.format(startDate);
try {
URL url = new URL(httpUrl);
HttpURLConnection connection = (HttpURLConnection) url
.openConnection();
connection.setRequestMethod("GET");
connection.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");
connection.connect();
InputStream is = connection.getInputStream();
reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
String strRead = null;
while ((strRead = reader.readLine()) != null) {
sbf.append(strRead);
}
reader.close();
JSONParser jsonParser = new JSONParser(sbf.toString());
Map<String,Object> map = jsonParser.parseMap();
Object obj = map.get("type");
LinkedHashMap jsonpObject = (LinkedHashMap) obj;
type = Integer.parseInt(jsonpObject.get("type").toString());
} catch (Exception e) {
e.printStackTrace();
}
if (type==0 || type ==3){
result++;
}
startDate.setDate(startDate.getDate() + 1);
}
return result;
}

浙公網安備 33010602011771號