package jbCAP;

import java.util.TimeZone;
import java.util.Date;

/** @file DateConverter.java
 *
 *  @brief b-CAP client library
 *
 *  @version	1.1
 *	@date		2014/1/30
 *	@author		DENSO WAVE (m)
 *
 */
public final class DateConverter {
	// Java Date(0) stands for Jan  1 00:00:00 UTC 1970
	// C++  Date(0) stands for Dec 30 00:00:00 UTC 1899
	// The difference is 25569 Day
	private static final double TIME_DIFFERENCE = 25569.0;
	
	// 1 Day = 24 * 60 * 60 * 1000 ms
	private static final double MSEC_ONEDAY = 24 * 60 * 60 * 1000;

	private static final TimeZone TIMEZONE = TimeZone.getDefault();
	
	public static Date CDate2JDate(double dTime)
	{
		return new Date((long) ((dTime - TIME_DIFFERENCE) * MSEC_ONEDAY) - TIMEZONE.getRawOffset());
	}
	
	public static double JDate2CDate(Date jTime)
	{
		if(jTime != null){
			return (double)(jTime.getTime() + TIMEZONE.getRawOffset()) / MSEC_ONEDAY + TIME_DIFFERENCE;
		}else{
			return (double)0;
		}
	}
}
