Skip to content
forked from hzamani/parsi-date

Solar Hijri (Jalali, Persian) date library for Ruby

License

Notifications You must be signed in to change notification settings

khaf/parsi-date

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

25 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Parsi Date

This is an implementation of Solar Hijri Calendar (some times referred to as Jalali or Persian Calendar) which is Iran’s official calendar. Main aim of this gem is to create a Solar Hijri date library as close as possible to the built-in date library. Conversion algorithm originally adopted from here.

Usage

You can use <tt>Parsi::Date<tt> and <tt>Parsi::DateTime<tt> objects as Date and DateTime objects For example:

a = Parsi::Date.today                     # => #<Parsi::Date: 1391-08-09 (4912461/2,0/1)>
b = a >> 12                               # => #<Parsi::Date: 1392-08-09 (4913193/2,0/1)>
a.upto(b).select{ |d| d.sunday? }.count   # => 52

Parsi::Date.leap? 1391                    # => true

c = Parsi::Date.parse "1391/10/12"        # => #<Parsi::Date: 1391-10-12 (4912587/2,0)>
c.strftime "%A %d %B %Y"                  # => "سه‌شنبه 12 دی 1391"
c.strftime "%^EA %d %^EB %Y"              # => "Seshambe 12 Day 1391"

For converting a Date or DateTime object just call to_parsi (aliased to jalali and to_jalali) on it. To convert back use to_gregorian.

d = Date.civil(2012, 10, 30).to_parsi     # => #<Parsi::Date: 1391-08-09 (4912461/2,0/1)>
d.to_gregorian                            # => #<Date: 2012-10-30 ((2456231j,0s,0n),+0s,2299161j)>

Copyright © 2012 Hassan Zamani, released under the MIT license.

About

Solar Hijri (Jalali, Persian) date library for Ruby

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published