자바 두 날짜 사이 의 표준 근무일 (오리지널)
package control;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import javax.servlet.jsp.jstl.sql.Result;
public class DateOper {
private String holidays;
private String workdays;
private DB_OPER db=new DB_OPER();
public DateOper()
{
Result result = null;
String sqlholiday = "select holidaydate from hrmpubholiday t where changetype=1";// ,
String sqlworkday = "select holidaydate from hrmpubholiday t where changetype=3";
result = db.executeQuery(sqlholiday);
//
if(result!=null && result.getRowCount()!=0)
{
for(int i=0;i<result.getRowCount();i++)
{
Map row = result.getRows()[i];
holidays += row.get("holidaydate").toString() + ",";
}
}
System.out.println(holidays);
//
result = db.executeQuery(sqlworkday);
if(result!=null && result.getRowCount()!=0)
{
for(int i=0;i<result.getRowCount();i++)
{
Map row = result.getRows()[i];
workdays += row.get("holidaydate").toString() + ",";
}
}
System.out.println(workdays);
}
public int countWorkDay(String start1, String end1)
{
String strsql;
//
int workDay = 0;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
Date start=null;
Date end = null;
try {
start=(Date) sdf.parse(start1);
end = (Date) sdf.parse(end1);
} catch (ParseException e) {
System.out.println(" , ");
e.printStackTrace();
}
//int thisyear = start.getYear() + 1900;
//int nextyear = thisyear == end.getYear() ? thisyear + 1 : end.getYear() + 1900;
System.out.println("start>>"+start+" end>>"+end);
int days = getDutyDays(start, end);
System.out.println("start>>"+start1+" end>>"+end1+" days>>"+days);
return days;
}
public int getDutyDays(Date StartDate,Date EndDate) {//
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
StartDate.setDate(StartDate.getDate() + 1);
int result = 0;
while (StartDate.compareTo(EndDate) <= 0) {
if (StartDate.getDay() != 6 && StartDate.getDay() != 0)//
{
result++;
// System.out.println(holidays);
if(!holidays.isEmpty())
{
if(holidays.indexOf(sdf.format(StartDate))>-1)// 1
result--;
}
}
else //
{ if(!workdays.isEmpty())
{
if(workdays.indexOf(sdf.format(StartDate))>-1)//
result++;
}
}
// System.out.println(StartDate+"-------"+StartDate.getDay()+"-----"+result+"******"+holidays.indexOf(sdf.format(StartDate))+"******"+workdays.indexOf(sdf.format(StartDate)));
StartDate.setDate(StartDate.getDate() + 1);
}
return result;
}
public static void main(String[] args) throws Exception {
DateOper db=new DateOper();
int workDays=db.countWorkDay("2016-2-10","2016-2-26");
System.out.println("workdays="+workDays);
}
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.