コード例 #1
0
ファイル: xpdatetime.c プロジェクト: K6BSD/SBBSUnstable
xpDateTime_t DLLCALL xpDateTime_now(void)
{
#if defined(_WIN32)
	SYSTEMTIME systime;

	GetLocalTime(&systime);
	return(xpDateTime_create(systime.wYear,systime.wMonth,systime.wDay
		,systime.wHour,systime.wMinute,(float)systime.wSecond+(systime.wMilliseconds*0.001F)
		,xpTimeZone_local()));
#else	/* !Win32 (e.g. Unix) */
	struct tm tm;
	struct timeval tv;
	time_t	t;

	gettimeofday(&tv, NULL);
	t=tv.tv_sec;
	localtime_r(&t,&tm);

	return xpDateTime_create(1900+tm.tm_year,1+tm.tm_mon,tm.tm_mday
		,tm.tm_hour,tm.tm_min,(float)tm.tm_sec+(tv.tv_usec*0.00001)
		,xpTimeZone_local());
#endif
}
コード例 #2
0
ファイル: xpdatetime.c プロジェクト: K6BSD/SBBSUnstable
xpDateTime_t DLLCALL time_to_xpDateTime(time_t ti, xpTimeZone_t zone)
{
	xpDateTime_t	never;
	struct tm tm;

	ZERO_VAR(never);
	ZERO_VAR(tm);
	if(localtime_r(&ti,&tm)==NULL)
		return(never);

	return xpDateTime_create(1900+tm.tm_year,1+tm.tm_mon,tm.tm_mday
		,tm.tm_hour,tm.tm_min,(float)tm.tm_sec
		,zone==xpTimeZone_LOCAL ? xpTimeZone_local() : zone);
}
コード例 #3
0
ファイル: datewrap.c プロジェクト: ftnapps/pkg-sbbs
xpDateTime_t time_to_xpDateTime(time_t ti)
{
	xpDateTime_t	never;
	struct tm tm;

	memset(&never,0,sizeof(never));
	if(ti==0)
		return(never);

	ZERO_VAR(tm);
	if(gmtime_r(&ti,&tm)==NULL)
		return(never);

	return xpDateTime_create(1900+tm.tm_year,1+tm.tm_mon,tm.tm_mday
		,tm.tm_hour,tm.tm_min,(float)tm.tm_sec,xpTimeZone_local());
}
コード例 #4
0
ファイル: xpdatetime.c プロジェクト: K6BSD/SBBSUnstable
BOOL DLLCALL isoTimeZoneStr_parse(const char* str, xpTimeZone_t* zone)
{
	unsigned hour=0,minute=0;

	switch(*str) {
		case 0:		/* local time-zone */
			*zone = xpTimeZone_local();	
			return TRUE;	
		case 'Z':	/* UTC */
			*zone = xpTimeZone_UTC;		
			return TRUE;
		case '+':
		case '-':	/* "+/- HH[:]MM" */
			if(sscanf(str+1,"%2u%*s%2u",&hour,&minute)>=1) {
				*zone = (hour*60) + minute;
				if(*str=='-')
					*zone = -(*zone);
				return TRUE;
			}
			break;
	}
	return FALSE;
}
コード例 #5
0
ファイル: xpdatetime.c プロジェクト: K6BSD/SBBSUnstable
xpDateTime_t DLLCALL isoDateTime_to_xpDateTime(isoDate_t date, isoTime_t ti)
{
	return xpDateTime_create(isoDate_year(date),isoDate_month(date),isoDate_day(date)
		,isoTime_hour(ti),isoTime_minute(ti),(float)isoTime_second(ti),xpTimeZone_local());
}