Java验证时间段问题
在处理监测数据实时录入时,需要提供当前班次信息{大白班,小夜班,大夜班},班次信息是根据给定时间段进行设定类似{{"8:00","16:00"},{"16:00","00:00"},{"00:00","8:00"}}
处理办法
· 取当前时间、转换验证起始、结束时间进行比较。
相关代码
/**
* 时间段测试
* @author WangYanCheng
* @version 2009-11-20
*/
public class CalendarTimeSubsectionTest {
/**
* 测试入口
* @param args arguments lists
*/
public static void main(String[] args) {
CalendarTimeSubsectionTest ctstObj = new CalendarTimeSubsectionTest();
int resultFlag = ctstObj.doGetShift("");
System.out.println(resultFlag);
}
/**
* 验证某一时间是否在某一时间段
* @param currTime 某一时间
* @param timeSlot 某一时间段
* @return true/false
*/
public boolean isShift(final long currTime, String[] timeSlot) {
Calendar 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]);
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) ? tru
相关文档:
Java学习从入门到精通
一、 JDK (Java Development Kit)
JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar)。不论什么Java应用服务器实质都是内置了某个版本的JDK。因此掌握JDK是学好Java的第一步。最主流的J ......
Java NIO API详解
在JDK
1.4以前,Java的IO操作集中在java.io这个包中,是基于流的阻塞(blocking)API。对于大多数应用来说,这样的API使用很方
便,然而,一些对性能要求较高的应用,尤其是服务端应用,往往需要一个更为有效的方式来处理IO。从JDK 1.4起,NIO
API作为一个基于缓冲区,并能提供非阻塞(non-blo ......
Reflection 的简单应用,包括field, method,constructor的应用。
package com.gaoqian.reflection;
import java.lang.reflect.Array;
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
import java.lang.reflect.Typ ......
值类型是存储在内存中的堆栈(以后简称栈),而引用类型的变量在栈中仅仅是存储引用类型变量的地址,而其本身则存储在堆中。==操作比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量在堆中存储的地址是否相同,即栈中的内容是否相同。equals操作表示的两个变量是否是对同一个对象的引用,即堆中的内容是否相 ......
package thread;
class ThreadTest4 implements Runnable{
private boolean flag=true;
public void stopMe(){
flag=false;
}
public void run() {
while (flag){
System.out.println(Thread.currentThread().getName()+" is running ");
&nbs ......