Index: /trunk/archive/pslib/include/psTime.h
===================================================================
--- /trunk/archive/pslib/include/psTime.h	(revision 1587)
+++ /trunk/archive/pslib/include/psTime.h	(revision 1587)
@@ -0,0 +1,80 @@
+#if !defined (PS_TIME_H)
+#define PS_TIME_H
+
+/** Defines time type */
+typedef enum {
+    PS_TIME_TAI,                    ///< seconds since 1970-01-01T00:00:00Z (Gregorian)
+    PS_TIME_UTC,                    ///< seconds since 1970-01-01T00:00:00Z (Gregorian)
+} psTimeType;
+
+/** The time */
+typedef struct {
+    psS64            sec;           ///< seconds, negative values represent dates before 1970
+    psU32            usec;          ///< microseconds
+    psTimeType       type;          ///< type of time
+} psTime;
+
+
+/** Get the current system time */
+psTime *psTimeGetTime(psTimeType type	///< Type of time
+		      );
+
+/** Convert between time types */
+psTime *psTimeConvert(psTime *time,	///< Time to convert, and output
+		      psTimeType type	///< Type to convert to
+    );
+
+/** Convert to local sidereal time */
+psTime *psTimeToLST(psTime *time,	///< Time to convert, and output
+		    double longitude	///< Latitude for LST
+    );
+
+/** Convert from local sidereal time */
+psTime *psTimeFromLST(psTime *time,	///< Time to convert, and output
+		      double longitude	///< Latitude for LST
+    );
+
+/** Get UT1 - UTC */
+double psTimeGetUT1Delta(const psTime *time	///< Time for which to return UT1-UTC difference
+    );
+
+/** Return pole coordinates */
+psSphere *psTimeGetPoleCoords(const psTime *time ///< Time for which to return pole coordinates
+    );
+
+/** Return Julian Date */
+psF64 psTimeToJD(const psTime *time);
+
+/** Return Modified Julian Date */
+psF64 psTimeToMJD(const psTime *time);
+
+/** Return ISO time string */
+char *psTimeToISOTime(const psTime *time);
+
+/** Return a timeval structure */
+timeval *psTimeToTimeval(const psTime *time);
+
+/** Convert Julian Date to psTime */
+psTime *psTimeFromJD(psF64 input);
+
+/** Convert Modified Julian Date to psTime */
+psTime *psTimeFromMJD(psF64 input);
+
+/** Convert ISO time string to psTime */
+psTime *psTimeFromISO(const char *input);
+
+/** Convert a timeval structure to psTime */
+psTime *psTimeFromTimeval(const timeval *input);
+
+/** Add two times */
+psTime *psTimeAdd(const psTime *tai1,	///< Time to which to add
+		  psF64 delta		///< Number of TAI seconds to add
+    );
+
+/** Subtract two times, TAI seconds */
+psF64 psTimeSub(const psTime *time1, const psTime *time2);
+
+/** Get absolute time difference between two times */
+psF64 psTimeDelta(const psTime *time1, const psTime *time2);
+
+#endif
