详细解决方案
如何判断时间安排范围是否包含
热度:6945 发布时间:2013-02-25 21:17:02.0
这些是某个用户要参加的多场考场的考试安排时间,时间安排冲突我想在详细页标记红色。
1、开始时间2012-07-02 08:00 结束时间2012-07-02 09:00
2、开始时间2012-07-02 08:40 结束时间2012-07-02 10:00
3、开始时间2012-07-02 09:05 结束时间2012-07-02 09:45
4、开始时间2012-07-02 10:00 结束时间2012-07-02 11:00
java怎么判断这多组时间,是否有包含关系? 就是怎么比较时间冲突?我菜鸟,跪求帮助。
------解决方案--------------------------------------------------------
- Java code
import java.text.SimpleDateFormat;import java.util.Date;import java.util.HashMap;import java.util.Map;public class Test { @SuppressWarnings({ "rawtypes", "unchecked" }) public static void main(String[] args) throws Exception{ Map examtimemap = new HashMap<String, String>(); examtimemap.put("starttime1","2012-07-02 08:00"); examtimemap.put("endtime1","2012-07-02 09:00"); examtimemap.put("starttime2","2012-07-02 08:40"); examtimemap.put("endtime2","2012-07-02 10:00"); examtimemap.put("starttime3","2012-07-02 09:05"); examtimemap.put("endtime3","2012-07-02 09:45"); examtimemap.put("starttime4","2012-07-02 10:00"); examtimemap.put("endtime4","2012-07-02 11:00"); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); for(int i = 1 ; i < 4;i++){ Date endtimei = sdf.parse(examtimemap.get("endtime" + i).toString()); for(int j = i + 1;j < 5;j++){ Date startTimej = sdf.parse(examtimemap.get("starttime" + j).toString()); if(endtimei.compareTo(startTimej) > 0){ System.out.println("时间" + j + "与时间" + i + "有冲突"); break; } } } }}
------解决方案--------------------------------------------------------
伪代码
- Java code
首先创建一个class(TestTime)里面存放这几个成员。String className;//科目名称Date startTime;//开始时间Date endTime;//结束时间声明一个List集合:List<TestTime> list = new ArrayList(TestTime)();然后有几门课程就去创建几个TestTime对象,并实例化,然后添加到List集合中。再然后就遍历这个List集合:for(int i = 0; i < list.size(); i++){ for(int j = i+1; j < list.size(); j++){ //这里将遍历的对象list.get(i)的endTtime和list.get(j)的startTime比较一下就OK了。 }}
------解决方案--------------------------------------------------------
- Java code
public static boolean isDate( Date[] date , Date[] dates){ if(date[0].getTime()>dates[0].getTime()){ if(date[0].getTime()<dates[1].getTime()){ return false; } } if(date[0].getTime()<dates[0].getTime()){ if(date[1].getTime()>dates[0].getTime()){ return false; } } if(date[0].getTime()==dates[0].getTime()){ return false; } return true ; } public static void main(String[] args) throws ParseException { Map<String, String[]> examtimemap = new LinkedHashMap<String, String[]>();//有序的Map examtimemap.put("date",new String []{"2012-07-02 08:00","2012-07-02 08:00"}); examtimemap.put("date2",new String []{"2012-07-02 08:40","2012-07-02 10:00"}); examtimemap.put("date3",new String []{"2012-07-02 09:05","2012-07-02 09:45"}); examtimemap.put("date4",new String []{"2012-07-02 10:00","2012-07-02 11:00"}); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm") ; int i = 0, i2=0 ; ; for (String key : examtimemap.keySet()) { for (String key2 : examtimemap.keySet()){ if(i2>i){ String [] dates = examtimemap.get(key) ; String [] dates2 = examtimemap.get(key2) ; Date[] date = {dateFormat.parse(dates[0]) ,dateFormat.parse(dates[1])} ; Date[] date2 = {dateFormat.parse(dates2[0]) ,dateFormat.parse(dates2[1])} ; if(!isDate( date , date2)){ System.out.println(key +"和"+key2 + "时间有冲突"); } } i2= i2+1 ; } i=i+1 ; i2 = 0; } }
相关解决方案
- 页面刷新时怎么进行csrf token 判断
- Java项目 的 一些 文件 应该 如何 存放
- struts2中 如何 通过javascript调用 action的方法,求高人给个例子
- javaWeb中使用 jsp+javabeab+servlet中 翻页的 简单 方法 是 如何 ?
- 求SQL实现 按日期/时间 显示不同时刻,登陆某网站的人数,该怎么处理
- 时间(毫秒数)转换解决方法
- flex 如何 运行不了
- 讨论:准备再次组织程序员聚会(地点:广深东之一,时间:十月初,活动主旨:交流,交友),该如何处理
- javaEE 如何 用java代码实现 固定每个月底更新这个月修改的数据
- 如何 用JS控制该页面在3秒后自动关闭
- String 时间 转换成 Date时间 如何得到数字形的
- 如何 输出
- Oracle 插入数据 时间 ORA-01841 有关问题
- 怎么 判断 ‘234’与 ‘432’是一样的只是位置不一样
- oracle insert 时间,该怎么解决
- ~ UPDATE 移除 <div (包含)开头后的文字
- sql 判断 查寻语句
- 存储过程+判断
- JTextField 如何 手动设置宽和高
- 怎么把一个字符串装换成一个表达式覆给一个变量(String str="2*3+5+8*7")如何 计算出结果
- java 如何 png转jpg
- 如何 :Cannot create PoolableConnectionFactory
- SQL语句求解 时间,该如何解决
- SQL话语求解 时间
- 安装了Qt vs 2008和 QtvsAddin之后 为啥不需要设置 包含 include 和library?解决思路
- iphone 开发 判断 获取 搬动 联通 网络 类型
- iphone 开发 判断 获取 挪动 联通 网络 类型
- iphone 如何 unlock
- 用sqlserver如何实现往字段插入常量+时间+四位自增序列
- 判断 函数 存储过程 用法,该怎么解决