¶ ↑
Parsi DateThis 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.
¶ ↑
UsageYou 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.