Skip to content

BaseMax/CalendarLibrary

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CalendarLibrary

The powerful library for display and convert calendar and handle the date units.

This library will be release for C / C++.

Features

  • Convert calendar units and dates.
  • Display the current date.
  • Convert date to string date, alphabet.
  • Detecting the day of the date.

Abilities

  • string display(dateDisplayType type)
  • string format(string format)
  • date convert(dateType target)

Example of the future:

date _date=Date(Date_Gregorian, 2019, 3, 4);
print( _date.format("Date is %y/%m/%d.\n") );

Predefined constants

Date Type

Constant Description
DATE_GREGORIAN Gregorian calendar
DATE_JALALI Jalali calendar
DATE_LUNAR Lunar calendar

Date Display Type

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

Format Specifies

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)

Supported Calendar Systems

Name Type Group
Gregorian calendar
Jalali calendar Solar Iranian
Lunar calendar

View the full list at here.

Initial Start

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

License

CalendarLibrary is licensed under the GNU General Public License.