simple2

@SuppressWarnings("deprecation")
	public void deal(Map<Integer, ArrayList<Date>> map) throws Exception
	{
		Date d = map.values().iterator().next().get(0);
		int beginStatistic = Const.beginStatistic;
		Calendar smallMonth = new GregorianCalendar(1900+d.getYear(),d.getMonth(),beginStatistic);
		Date d1 = null;
		Date d2 = null;
		int date = 0;
		Map<Integer, ArrayList<Date>> uniq = uniqe(map);
		while(true)
		{
			date = smallMonth.get(Calendar.DAY_OF_MONTH);
			if(smallMonth.get(Calendar.DAY_OF_WEEK) == 1 || smallMonth.get(Calendar.DAY_OF_WEEK) == 7)//周末
			{
				if(uniq.containsKey(date))//加班
				{
					if(uniq.get(date) != null)
					{
						extra_weekend.put(date, new ArrayList<Date>(2));
						extra_weekend.get(date).add(uniq.get(date).get(0));
						extra_weekend.get(date).add(uniq.get(date).get(1));
					}
				}
			}
			else if(uniq.containsKey(date))//平时刷卡
			{
				ArrayList<Date> ds = uniq.get(date);
				if(ds == null)
				{
					smallMonth.add(Calendar.DAY_OF_MONTH, 1);
					continue;
				}
				d1 = timeFormat.parse(timeFormat.format(ds.get(0)));
				d2 = timeFormat.parse(timeFormat.format(ds.get(1)));
				if(d1.after(am.getTime()) || d2.before(pm.getTime()))//迟到,早退
				{
					exception.put(date, new ArrayList<Date>(2));
					exception.get(date).add(ds.get(0));
					exception.get(date).add(ds.get(1));
				}
				if(d2.after(eve.getTime()))//平时加班
				{
					extra_weekday.add(ds.get(1));//记录晚上打卡时间
				}
			}
			else//缺席
			{
				if(exception.get(100) == null)
				{
					exception.put(100, new ArrayList<Date>());
				}
				exception.get(100).add(smallMonth.getTime());
			}
			
			smallMonth.add(Calendar.DAY_OF_MONTH,1);
			if(smallMonth.get(Calendar.DAY_OF_MONTH) == beginStatistic)
			{
				break;
			}
			
		}
	}
	
}

 

你可能感兴趣的:(simpleprocess)