Skip to content

miadabrin/parsi-date

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 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

Languages

  • Ruby 100.0%