عکس hzamani
Solar Hijri (Jalali, Persian) date library for RubyRuby
موضوع‌ها
۵
فورک‌ها
۱۲
ستاره‌ها
۴۳
تاریخ ایجاد
۶ آبان ۱۳۹۱
آخرین بروزرسانی
بیشتر از ۱ سال قبل
لایسنس
MIT License

= Parsi Date

This is an implementation of {Solar Hijri Calendar}[http://en.wikipedia.org/wiki/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}[http://www.fourmilab.ch/documents/calendar/].

== Usage

You can use Parsi::Date<\tt> and 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 (c) 2012 Hassan Zamani, released under the MIT license.