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