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.
 |