모니터링 데이터의 실시간 입력을 처리할 때 현재 교대 정보(주요 근무, 소규모 야간 근무, 대규모 야간 근무)를 제공해야 합니다. 교대 정보는 {{"8과 유사하게 특정 기간을 기준으로 설정됩니다. :00", "16:00"} ,{"16:00","00:00"},{"00:00","8:00"}}
해결책
· 현재시간, 변환인증 시작시간, 종료시간을 비교해보세요.
관련 코드
일반 사본을 클립보드 인쇄로 보시겠습니까?
/**
* 기간 테스트
* @author WangYanCheng
* @버전 2009-11-20
*/
공개 클래스 CalendarTimeSubsectionTest {
/**
* 시험 입장
* @param args 인수 목록
*/
공개 정적 무효 메인(String[] args) {
CalendarTimeSubsectionTest ctstObj = new CalendarTimeSubsectionTest();
int resultFlag = ctstObj.doGetShift("");
System.out.println(resultFlag);
}
/**
* 특정 시간이 특정 기간에 속하는지 확인
* @param currTime 특정 시간
* @param timeSlot 특정 기간
* @return 참/거짓
*/
공개 부울 isShift(최종 긴 currTime, String[] timeSlot) {
캘린더 tempCalendar = Calendar.getInstance();
tempCalendar.setTimeInMillis(currTime);
String[] tmpArray = timeSlot[0].split(":");
긴 startTime, stopTime;
tempCalendar.clear(Calendar.HOUR_OF_DAY);
tempCalendar.clear(Calendar.MINUTE);
tempCalendar.set(Calendar.HOUR_OF_DAY, Integer.parseInt(tmpArray[0]));
tempCalendar.set(Calendar.MINUTE, Integer.parseInt(tmpArray[1]));
startTime = tempCalendar.getTimeInMillis();
tmpArray = timeSlot[1].split(":");
int stopHour = Integer.parseInt(tmpArray[0]), stopMinute = Integer.parseInt(tmpArray[1]);
if (stopHour == 0) {
tempCalendar.add(Calendar.DAY_OF_MONTH, 1);
}
tempCalendar.clear(Calendar.HOUR_OF_DAY);
tempCalendar.clear(Calendar.MINUTE);
tempCalendar.set(Calendar.HOUR_OF_DAY, stopHour);
tempCalendar.set(Calendar.MINUTE, stopMinute);
stopTime = tempCalendar.getTimeInMillis();
return ((startTime < currTime && currTime <= stopTime) ? true : false);
}
/**
*교대 계산
* @param orgCode 소속
* @return 결과 {1:큰 밤;2:주간 근무;3:작은 밤;4:야간 근무;0:특별 대우}
*/
공개 int doGetShift(String orgCode) {
정수 결과 = 0;
캘린더 currCalen = Calendar.getInstance();
긴 currTime = currCalen.getTimeInMillis();
if (isShift(currTime, timeSubsection[2])) {
결과 = 1;
} else if (isShift(currTime, timeSubsection[0])) {
결과 = 2;
} else if (isShift(currTime, timeSubsection[1])) {
결과 = 3;
}
결과 반환;
}
//기간 0: 주간 근무; 1: 소규모 야간 근무 2: 대규모 야간 근무*/
private static String[][] timeSubsection = {{"8:00", "16:00"}, {"16:00", "00:00"}, {"00:00", "08:00" }};
/**
* 날짜 형식
* @param calenObj 날짜 인스턴스
* @param formatStr 형식 문자열
* @return 결과 형식 완료된 문자열
*/
공개 문자열 doParseDate(Calendar calenObj, 문자열 formatStr) {
DateFormat df = new SimpleDateFormat(formatStr);
문자열 결과 = null;
결과 = df.format(calenObj.getTime());
결과 반환;
}