29 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			29 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
|   | libtai is a library for storing and manipulating dates and times. | ||
|  | 
 | ||
|  | libtai supports two time scales: (1) TAI64, covering a few hundred | ||
|  | billion years with 1-second precision; (2) TAI64NA, covering the same | ||
|  | period with 1-attosecond precision. Both scales are defined in terms of | ||
|  | TAI, the current international real time standard. | ||
|  | 
 | ||
|  | libtai provides an internal format for TAI64, struct tai, designed for | ||
|  | fast time manipulations. The tai_pack() and tai_unpack() routines | ||
|  | convert between struct tai and a portable 8-byte TAI64 storage format. | ||
|  | libtai provides similar internal and external formats for TAI64NA. | ||
|  | 
 | ||
|  | libtai provides struct caldate to store dates in year-month-day form. It | ||
|  | can convert struct caldate, under the Gregorian calendar, to a modified | ||
|  | Julian day number for easy date arithmetic. | ||
|  | 
 | ||
|  | libtai provides struct caltime to store calendar dates and times along | ||
|  | with UTC offsets. It can convert from struct tai to struct caltime in | ||
|  | UTC, accounting for leap seconds, for accurate date and time display. It | ||
|  | can also convert back from struct caltime to struct tai for user input. | ||
|  | Its overall UTC-to-TAI conversion speed is 100x better than the usual | ||
|  | UNIX mktime() implementation. | ||
|  | 
 | ||
|  | This version of libtai requires a UNIX system with gettimeofday(). It | ||
|  | will be easy to port to other operating systems with compilers | ||
|  | supporting 64-bit arithmetic. | ||
|  | 
 | ||
|  | The libtai source code is in the public domain. |