⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nabstime.h

📁 关系型数据库 Postgresql 6.5.2
💻 H
字号:
/*------------------------------------------------------------------------- * * nabstime.h *	  Definitions for the "new" abstime code. * * * Copyright (c) 1994, Regents of the University of California * * $Id: nabstime.h,v 1.20 1999/05/25 16:14:56 momjian Exp $ * *------------------------------------------------------------------------- */#ifndef NABSTIME_H#define NABSTIME_H#include <time.h>#include "utils/dt.h"/* ---------------------------------------------------------------- *				time types + support macros * * * ---------------------------------------------------------------- *//* The original typedefs are bogus - they assume that the system's 'time_t' * type is of size 32-bits.  Under AlphaLinux, time_t is a long int, which * is 64-bits.	Therefore, typedef these both as simply 'time_t', and let * the OS define what the size really is. -- RME 3/5/99 */typedef time_t AbsoluteTime;typedef time_t RelativeTime;typedef struct{	int32		status;	AbsoluteTime data[2];} TimeIntervalData;typedef TimeIntervalData *TimeInterval;/* * Reserved values * Epoch is Unix system time zero, but needs to be kept as a reserved *	value rather than converting to time since timezone calculations *	might move it away from 1970-01-01 00:00:00Z - tgl 97/02/20 * * Pre-v6.1 code had large decimal numbers for reserved values. * These were chosen as special 32-bit bit patterns, *	so redefine them explicitly using these bit patterns. - tgl 97/02/24 */#define EPOCH_ABSTIME	((AbsoluteTime) 0)#define INVALID_ABSTIME ((AbsoluteTime) 0x7FFFFFFE)		/* 2147483647 == 2^31 -														 * 1 */#define CURRENT_ABSTIME ((AbsoluteTime) 0x7FFFFFFD)		/* 2147483646 == 2^31 -														 * 2 */#define NOEND_ABSTIME	((AbsoluteTime) 0x7FFFFFFC)		/* 2147483645 == 2^31 -														 * 3 */#define BIG_ABSTIME		((AbsoluteTime) 0x7FFFFFFB)		/* 2147483644 == 2^31 -														 * 4 */#if defined(_AIX)/* * AIX considers 2147483648 == -2147483648 (since they have the same bit * representation) but uses a different sign sense in a comparison to * these integer constants depending on whether the constant is signed * or not! */#define NOSTART_ABSTIME		 ((AbsoluteTime) INT_MIN)#else#define NOSTART_ABSTIME ((AbsoluteTime) 0x80000001)		/* -2147483647 == - 2^31 */#endif	 /* _AIX */#define INVALID_RELTIME ((RelativeTime) 0x7FFFFFFE)		/* 2147483647 == 2^31 -														 * 1 */#define AbsoluteTimeIsValid(time) \	((bool) ((time) != INVALID_ABSTIME))#define AbsoluteTimeIsReal(time) \	((bool) (((AbsoluteTime) time) < NOEND_ABSTIME && \			 ((AbsoluteTime) time) > NOSTART_ABSTIME))/* have to include this because EPOCH_ABSTIME used to be invalid - yuk */#define AbsoluteTimeIsBackwardCompatiblyValid(time) \	((bool) (((AbsoluteTime) time) != INVALID_ABSTIME && \			 ((AbsoluteTime) time) > EPOCH_ABSTIME))#define AbsoluteTimeIsBackwardCompatiblyReal(time) \	((bool) (((AbsoluteTime) time) < NOEND_ABSTIME && \			 ((AbsoluteTime) time) > NOSTART_ABSTIME && \			 ((AbsoluteTime) time) > EPOCH_ABSTIME))#define RelativeTimeIsValid(time) \	((bool) (((RelativeTime) time) != INVALID_RELTIME))extern AbsoluteTime GetCurrentAbsoluteTime(void);/* * getSystemTime *		Returns system time. */#define getSystemTime() \	((time_t) (time(0l)))/* * nabstime.c prototypes */extern AbsoluteTime nabstimein(char *timestr);extern char *nabstimeout(AbsoluteTime time);extern bool abstimeeq(AbsoluteTime t1, AbsoluteTime t2);extern bool abstimene(AbsoluteTime t1, AbsoluteTime t2);extern bool abstimelt(AbsoluteTime t1, AbsoluteTime t2);extern bool abstimegt(AbsoluteTime t1, AbsoluteTime t2);extern bool abstimele(AbsoluteTime t1, AbsoluteTime t2);extern bool abstimege(AbsoluteTime t1, AbsoluteTime t2);extern bool abstime_finite(AbsoluteTime time);extern AbsoluteTime datetime_abstime(DateTime *datetime);extern DateTime *abstime_datetime(AbsoluteTime abstime);extern bool AbsoluteTimeIsBefore(AbsoluteTime time1, AbsoluteTime time2);extern void abstime2tm(AbsoluteTime time, int *tzp, struct tm * tm, char *tzn);#endif	 /* NABSTIME_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -