日期时间段算法
ADF培训 2011-05-11 10:53:21 先说业务背景,员工出差,出差的时候必须要有出差单,单据中有出差的开始日期和结束日期,而在这二个日期中可能会包含休息日期和法定节假日的情况。所以,如果碰到有,还必须自动为其生成加班单和法定节假日加班。假设出差日期为5-13到6-16号
条件1:出差中未排班的日期为5-14,5-15,5-21,5-28,5-29,6-4,6-8,6-14,6-15
条件2:假设出差中法定节假日:5-15,6-14
生成加班单规则:假设未排班日期中包含法定节假日,需分开,如:5-14,5-15,5-21,5-28,5-29,6-4,6-8这个日期内有5-15这个法定节假日,所以,必须分成二段,即:A段:5-14和B段:5-21,5-28,5-29,6-4,6-8(更高的要求是因为B段是跨月的,也需要分开为5月和6月)。所以加班单的话,等于有要生成3张加班单据。
生成法定节假日规则:如果法定节假日是连续的日期则好办,如5-1,5-2,5-3则直接生成单据即可。如条件2所述,因为5-15到6-14间有未排班日期,所以肯定要分开二张法定节假日加班。
这种算法如何写?请教~~(最好是java版的)