我必须创建一个预订系统类型程序,用户输入一个用户名(字符串),然后输入他们想要预订的月份,日期和时间,然后输入结束月份,日期和时间。所以它看起来类似于:
John Jul 23 9 Jul 24 18
是
user startMonth startDate startTime endMonth endDate endTime
我需要能够实现这一点,以便我可以检查是否有任何预订发生冲突,有人可以告诉我如何执行此操作,因为我是Java新手。
编辑:我知道如何解析输入,但我不太清楚如何在java中使用日期函数,以及如何帮助我检查是否有任何预订发生冲突。答案 0 :(得分:2)
在Java中,解析和格式化Date
对象由DateFormat
类型的对象处理,通常为SimpleDateFormat
。
查看SimpleDateFormat文档并尝试设想如何使用Date对象查看是否存在任何冲突。
答案 1 :(得分:2)
回答问题...... ( start1 <= end2 and start2 <= end1 )
java.util.Date
包含long
值。使用getTime()
获取该值,以进行比较。
答案 2 :(得分:0)
尝试使用Calendar对象。
答案 3 :(得分:0)
您需要解析输入,您可以使用String.split方法来完成 或者更复杂的方法,我认为更好,是使用java正则表达式。
解析后,你可以形成一个包含日期的字符串,然后用java日期解析器解析它。
答案 4 :(得分:0)
正如maerics已写的:SimpleDateFormat是你的朋友......
将您的输入分为3个部分,如SJuan76建议,并将两个日期部分都提供给SimpleDateFormat的解析方法......这样您就可以获得两个日期部分的Date对象...
现在预订部分和碰撞检查...
我建议您为预订或预订创建自己的课程,或者您想要打电话。
您可以使用LinkedList来存储对象......
当你将一个对象添加到列表中时,保持列表按开始日期排序...这样你就可以看到插入的对象是否会与另一个对象发生碰撞...找到插入新对象的位置..看看前一个...如果新对象的开始日期在前任结束日期之前我们有碰撞......如果新结束日期在后继者开始日期之后,我们就会发生碰撞......如果有的话没有碰撞,将新对象插入列表中的这个位置...