Lors du traitement de la saisie en temps réel des données de surveillance, vous devez fournir les informations sur l'équipe actuelle {grande équipe de jour, petite équipe de nuit, grande équipe de nuit}. Les informations sur l'équipe sont définies en fonction d'une période de temps donnée, similaire à {{"8). :00", "16:00"} ,{"16:00","00:00"},{"00:00","8:00"}}
Solution
· Comparez l'heure actuelle, l'heure de début et de fin de la vérification de la conversion.
Code associé
afficher la copie ordinaire dans le presse-papiers ?
/**
* Test de période de temps
* @auteur WangYanCheng
* @version 2009-11-20
*/
classe publique CalendarTimeSubsectionTest {
/**
* Test d'entrée
* Listes d'arguments @param args
*/
public static void main (String[] arguments) {
CalendarTimeSubsectionTest ctstObj = new CalendarTimeSubsectionTest();
int resultFlag = ctstObj.doGetShift("");
System.out.println(resultFlag);
}
/**
* Vérifiez si une certaine heure se situe dans une certaine période
* @param currTime une certaine heure
* @param timeSlot une certaine période de temps
* @return vrai/faux
*/
public boolean isShift(final long currTime, String[] timeSlot) {
Calendrier tempCalendar = Calendar.getInstance();
tempCalendar.setTimeInMillis(currTime);
String[] tmpArray = timeSlot[0].split(":");
long 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]);
si (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);
}
/**
*Calcul du décalage
* Affiliation @param orgCode
* @return result {1:grande nuit;2:équipe de jour;3:petite nuit;4:équipe de nuit;0:traitement spécial}
*/
public int doGetShift(String orgCode) {
résultat entier = 0 ;
Calendrier currCalen = Calendar.getInstance();
long currTime = currCalen.getTimeInMillis();
if (isShift(currTime, timeSubsection[2])) {
résultat = 1 ;
} sinon if (isShift(currTime, timeSubsection[0])) {
résultat = 2 ;
} sinon if (isShift(currTime, timeSubsection[1])) {
résultat = 3 ;
}
renvoyer le résultat ;
}
//Période 0 : équipe de jour ; 1 : petite équipe de nuit ; 2 : grande équipe de nuit*/
private static String[][] timeSubsection = {{"8:00", "16:00"}, {"16:00", "00:00"}, {"00:00", "08:00" }} ;
/**
* Formatage des dates
* Instance de date @param calenObj
* @param formatStr chaîne de format
* Chaîne complétée au format de résultat @return
*/
public String doParseDate (Calendrier calenObj, String formatStr) {
DateFormat df = new SimpleDateFormat(formatStr);
Résultat de la chaîne = null ;
résultat = df.format(calenObj.getTime());
renvoyer le résultat ;
}