/*********************************************************************
*	 All Rights reserved,Copyright (c) K-Opticom 
**********************************************************************
*＜プログラム内容＞
*	システム名		：eo顧客基幹システム構築
*	モジュール名	：JCRejbCalcDifferenceTime
*	ソースファイル名：JCRejbCalcDifferenceTime.java
*	作成者			：富士通
*	日付			：2011年04月22日
*＜機能概要＞
*	時間差編集部品クラス
*＜修正履歴＞
*	バージョン	修正日		修正者		修正内容
*	v1.00.00	2011/04/22	富士通		新規作成
*
**********************************************************************/

package eo.ejb.common.edit;

import com.fujitsu.futurity.model.base.CAANMsg;
import com.fujitsu.futurity.model.ejb.common.fw.AgentDispatchContext;

import eo.common.util.JPCUtilCommon;

/**
 * <p>
 * 時間差編集部品クラスです。
 * </p>
 * @author 富士通
 */
public class JCRejbCalcDifferenceTime
{

	/**
	 * コンストラクタです。
	 */
	private JCRejbCalcDifferenceTime()
	{
	}

	/**
	 * 時間差編集部品です。<br>
	 * <br>
	 * 対応記録の対応開始年月日時分秒と、inMsgの対応キャンセル年月日時分秒の差を算出し、分として換算した値を返します。
	 * 
	 * @param inMsg CAANMsg
	 * @param inContext AgentDispatchContext
	 * @param start 開始時刻
	 * @param end 終了時刻
	 * @return 分に換算した値
	 */
	public static String getDifferenceTime(CAANMsg inMsg, AgentDispatchContext inContext, Object start, Object end)
	{

		// inMsgの対応開始年月日時分秒
		String startTime = start.toString();
		// inMsgの対応キャンセル年月日時分秒
		String endTime = end.toString();

		// 年月日時分秒文字列(yyyyMMddHHmmssSSS)から年月日(yyyyMMdd)の文字列を取得します。
		// 開始の日付
		String startDate = startTime.substring(0, 8);
		// 終了の日付
		String endDate = endTime.substring(0, 8);

		// 開始の時間
		int startHour = Integer.parseInt(startTime.substring(8, 10));

		// 終了の時間
		int endHour = Integer.parseInt(endTime.substring(8, 10));

		// 開始の分
		int startMinutes = Integer.parseInt(startTime.substring(10, 12));

		// 終了の分
		int endMinutes = Integer.parseInt(endTime.substring(10, 12));

		// 日の差分を取得
		int difDay = JPCUtilCommon.subtractDay(endDate, startDate);

		// 日の差分を分に換算
		long difMinutes = difDay * 24 * 60;

		long retMinutes = difMinutes + (endHour * 60 + endMinutes) - (startHour * 60 + startMinutes);

		return String.valueOf(retMinutes);

	}

}
