Saat memproses input data pemantauan secara real-time, Anda perlu memberikan informasi shift saat ini {shift siang besar, shift malam kecil, shift malam besar}. Informasi shift diatur berdasarkan jangka waktu tertentu, mirip dengan {{"8 :00", "16:00"} ,{"16:00","00:00"},{"00:00","8:00"}}
Larutan
· Bandingkan waktu saat ini, waktu mulai dan berakhirnya verifikasi konversi.
Kode terkait
lihat salinan biasa ke cetak papan klip?
/**
* Tes periode waktu
* @penulis WangYanCheng
* @versi 20-11-2009
*/
kelas publik CalendarTimeSubsectionTest {
/**
* Tes masuk
* @param args daftar argumen
*/
public static void main(String[] args) {
CalendarTimeSubsectionTest ctstObj = CalendarTimeSubsectionTest();
int resultFlag = ctstObj.doGetShift("");
System.out.println(resultFlag);
}
/**
* Verifikasi apakah waktu tertentu berada dalam jangka waktu tertentu
* @param currTime waktu tertentu
* @param timeSlot jangka waktu tertentu
* @mengembalikan benar/salah
*/
boolean publik isShift(waktu arus panjang terakhir, String[] slot waktu) {
Kalender tempCalendar = Kalender.getInstance();
tempCalendar.setTimeInMillis(waktu saat ini);
String[] tmpArray = slot waktu[0].split(":");
Waktu mulai yang panjang, Waktu berhenti;
tempCalendar.clear(Kalender.HOUR_OF_DAY);
tempCalendar.clear(Kalender.MINUTE);
tempCalendar.set(Kalender.HOUR_OF_DAY, Integer.parseInt(tmpArray[0]));
tempCalendar.set(Kalender.MINUTE, Integer.parseInt(tmpArray[1]));
startTime = tempCalendar.getTimeInMillis();
tmpArray = slot waktu[1].split(":");
int stopHour = Integer.parseInt(tmpArray[0]), stopMinute = Integer.parseInt(tmpArray[1]);
jika (stopJam == 0) {
tempCalendar.add(Kalender.DAY_OF_MONTH, 1);
}
tempCalendar.clear(Kalender.HOUR_OF_DAY);
tempCalendar.clear(Kalender.MINUTE);
tempCalendar.set(Calendar.HOUR_OF_DAY, stopHour);
tempCalendar.set(Kalender.MINUTE, stopMinute);
stopTime = tempCalendar.getTimeInMillis();
return ((startTime < currTime && currTime <= stopTime) ? benar : salah);
}
/**
*Perhitungan shift
* Afiliasi @param orgCode
* @hasil pengembalian {1:malam besar;2:shift siang;3:malam kecil;4:shift malam;0:perlakuan khusus}
*/
public int doGetShift(String Kode Organisasi) {
int hasil = 0;
Kalender currCalen = Kalender.getInstance();
long currTime = currCalen.getTimeInMillis();
if (isShift(currTime, timeSubbagian[2])) {
hasil = 1;
} else if (isShift(currTime, timeSubsection[0])) {
hasil = 2;
} else if (isShift(currTime, timeSubsection[1])) {
hasil = 3;
}
hasil pengembalian;
}
//Periode waktu 0: shift siang; 1: shift malam kecil; 2: shift malam besar*/
String statis pribadi[][] timeSubsection = {{"8:00", "16:00"}, {"16:00", "00:00"}, {"00:00", "08:00" }};
/**
* Pemformatan tanggal
* Contoh tanggal @param calenObj
* @param formatStr format string
* @return format hasil string selesai
*/
public String doParseDate(Kalender calenObj, String formatStr) {
DateFormat df = new SimpleDateFormat(formatStr);
Hasil string = null;
hasil = df.format(calenObj.getTime());
hasil pengembalian;
}