The powerful library for display and convert calendar and handle the date units.
This library will be release for C / C++.
- Convert calendar units and dates.
 - Display the current date.
 - Convert date to string date, alphabet.
 - Detecting the day of the date.
 
- string display(dateDisplayType type)
 - string format(string format)
 - date convert(dateType target)
 
date _date=Date(Date_Gregorian, 2019, 3, 4);
print( _date.format("Date is %y/%m/%d.\n") );| Constant | Description | 
|---|---|
| DATE_GREGORIAN | Gregorian calendar | 
| DATE_JALALI | Jalali calendar | 
| DATE_LUNAR | Lunar calendar | 
| Constant | Description | Sample Output | 
|---|---|---|
| DATE_ATOM | Atom | 2013-04-12T15:52:01+00:00 | 
| DATE_COOKIE | HTTP Cookies | Friday, 12-Apr-13 15:52:01 UTC | 
| DATE_RSS | RSS | Fri, 12 Aug 2013 15:52:01 +0000 | 
| DATE_ISO8601 | ISO-8601 | 2013-04-12T15:52:01+0000 | 
| DATE_W3C | World Wide Web Consortium | 2013-04-12T15:52:01+00:00 | 
| DATE_RFC822 | RFC 822 | Fri, 12 Apr 13 15:52:01 +0000 | 
| DATE_RFC850 | RFC 850 | Friday, 12-Apr-13 15:52:01 UTC | 
| DATE_RFC1036 | RFC 1036 | Fri, 12 Apr 13 15:52:01 +0000 | 
| DATE_RFC1123 | RFC 1123 | Fri, 12 Apr 2013 15:52:01 +0000 | 
| DATE_RFC2822 | RFC 2822 | Fri, 12 Apr 2013 15:52:01 +0000 | 
| DATE_RFC3339 | Same as DATE_ATOM | 2013-04-12T15:52:01+00:00 | 
| Constant | Description | 
|---|---|
| %d | The day of the month (from 01 to 31) | 
| %D | A textual representation of a day (three letters) | 
| %j | The day of the month without leading zeros (1 to 31) | 
| %l (lowercase 'L') | A full textual representation of a day | 
| %N | The ISO-8601 numeric representation of a day (1 for Monday, 7 for Sunday) | 
| %S | The English ordinal suffix for the day of the month (2 characters st, nd, rd or th. Works well with j) | 
| %w | A numeric representation of the day (0 for Sunday, 6 for Saturday) | 
| %z | The day of the year (from 0 through 365) | 
| %W | The ISO-8601 week number of year (weeks starting on Monday) | 
| %F | A full textual representation of a month (January through December) | 
| %m | A numeric representation of a month (from 01 to 12) | 
| %M | A short textual representation of a month (three letters) | 
| %n | A numeric representation of a month, without leading zeros (1 to 12) | 
| %t | The number of days in the given month | 
| %L | Whether it's a leap year (1 if it is a leap year, 0 otherwise) | 
| %o | The ISO-8601 year number | 
| %Y | A four digit representation of a year | 
| %y | A two digit representation of a year | 
| %a | Lowercase am or pm | 
| %A | Uppercase AM or PM | 
| %B | Swatch Internet time (000 to 999) | 
| %g | 12-hour format of an hour (1 to 12) | 
| %G | 24-hour format of an hour (0 to 23) | 
| %h | 12-hour format of an hour (01 to 12) | 
| %H | 24-hour format of an hour (00 to 23) | 
| %i | Minutes with leading zeros (00 to 59) | 
| %s | Seconds, with leading zeros (00 to 59) | 
| %u | Microseconds | 
| %e | The timezone identifier (Examples: UTC, GMT, Atlantic/Azores) | 
| %I (capital i) | Whether the date is in daylights savings time (1 if Daylight Savings Time, 0 otherwise) | 
| %O | Difference to Greenwich time (GMT) in hours (Example: +0100) | 
| %P | Difference to Greenwich time (GMT) in hours:minutes | 
| %T | Timezone abbreviations (Examples: EST, MDT) | 
| %Z | Timezone offset in seconds. The offset for timezones west of UTC is negative (-43200 to 50400) | 
| %c | The ISO-8601 date (e.g. 2013-05-05T16:34:42+00:00) | 
| %r | The RFC 2822 formatted date (e.g. Fri, 12 Apr 2013 12:01:05 +0200) | 
| %U | The seconds since the Unix Epoch (January 1 1970 00:00:00 GMT) | 
| Name | Type | Group | 
|---|---|---|
| Gregorian calendar | ||
| Jalali calendar | Solar | Iranian | 
| Lunar calendar | 
View the full list at here.
According to Kambiz Asadzadeh, a CPP activist, there is a shortage of library for management and control over calendar and date, and the design of such a library can help a lot of developers in the world.
Given that I recently had a project for a company close to this, it was suggested to me to write such a library.
The developers are invited to develop this libraries in other languages such as Go, Rust, ...
CalendarLibrary is licensed under the GNU General Public License.