package com.csc.library.utility;

import com.csc.library.utilities.CscCalendar;
import com.csc.library.utilities.CscTime;
import com.csc.library.utilities.MyLog;

public class DiffTime {

	/*
	 * ������Ѻ�ӡ��ź ���������������͡�ͧ��ѡ�ҹ
	 * ���� �ѹ���ҷ���������͡�ҡ�ҹ�����
	 * ������ѹ���ҷ���繪�ǧ�ͧ��þѡ���§����Ҵ���
	 * ��觨�����Ѿ���� �ӹǹ���ҷ��� �ӧҹ ��Ѻ�͡�
	 * */
	public float TimeOutDiffTimeIn(CscCalendar time_in, CscCalendar time_out,
			CscCalendar break_in, CscCalendar break_out) {
		CscTime result = new CscTime(0f);
		if (!time_in.equals(time_out) && time_out.after(time_in)) {
			if (time_in.beforeEquals(break_in) && time_out.afterEquals(break_out)) { //8.xx-17.xx
				//MyLog.debug("====> CASE 1 [8.xx-17.xx]");
				result.add(break_in.subForHour(time_in));
				result.add(time_out.subForHour(break_out));
			} else if (time_in.beforeEquals(break_in) && time_out.beforeEquals(break_in)) { //8.xx-11.xx
				//MyLog.debug("====> CASE 2 [8.xx-11.xx]");
				result.add(time_out.subForHour(time_in));
			} else if (time_in.afterEquals(break_out) && time_out.afterEquals(break_out)) { //13.xx-16.xx 
				//MyLog.debug("====> CASE 3 [13.xx-16.xx ]");
				result.add(time_out.subForHour(time_in));
			} else if (time_in.beforeEquals(break_in) && time_out.beforeEquals(break_out) && time_out.afterEquals(break_in)) { //8.xx-12.xx
				//MyLog.debug("====> CASE 4 [8.xx-12.xx]");
				result.add(break_in.subForHour(time_in));
			} else if (time_out.afterEquals(break_out) && time_in.afterEquals(break_in) && time_in.beforeEquals(break_out)) { //12.xx-14.xx
				//MyLog.debug("====> CASE 5 [12.xx-14.xx]");
				result.add(time_out.subForHour(break_out));
			} 
		} //else MyLog.debug("====> IN AND OUT IS EQUALS !!!");
		return result.getFloat();
	}
	
	public float TimeOutDiffTimeIn(CscCalendar time_in, CscCalendar time_out){
		CscTime result = new CscTime(0f);	
		result.add(time_out.subForHour(time_in));
		return result.getFloat();
	}//end TimeOutDiffTimeIn
}