/libcalby

Tiny library to manage calendars and date/time stamps (ISO, TAI, JD, MJD...)

Primary LanguageCGNU General Public License v2.0GPL-2.0

libcalby: a tiny calendar library
=================================

The libcalby provides a suite of tools to manage different calendars easy.
Currently supports Gregorian Calendar and Julian Calendar, and also support
a number of formats for date and time, including ISO, TAI64, Julian Date and
Modified Julian Date.

libcalby still under development, and new calendars and formats will be
added in the future.

Example of usage
----------------

  #include <stdio.h>
  #include "calby.h"

  int
  main (int argc, char **argv)
  {
      cal_datetime_t t;
      uint64_t tai;
      char buf[CAL_ISOFMT_LEN];

      cal_now(&t); /* get current time */
      cal_format(&t,buf); /* human readable */

      /* print date-time in human readable form */
      printf("%s\n", buf);

      /* print julian date */
      printf("%ld\n", cal_jd(&t));

      /* print modified julian date */
      printf("%ld\n", cal_mjd(&t));

      /* print TAI form */
      printf("@%llx\n", cal_tai(&t));

      /* add leap seconds to tai */
      /* /etc/leapseconds.dat must be exists */
      tai = cal_tai(&t);
      cal_leapsecs_add(&tai);

      /* print TAI with leap seconds */
      printf("@%llx\n", tai);

      /* get julian calendar date */
      cal_julian(&t);
      cal_format(&t,buf);

      printf("%s\n",buf);
  }