module Utils
A module for utility class methods. To be extended in nanakshahi.rb
Constants
- NANAKSHAHI_EPOCH_IN_GREGORIAN
Public Instance Methods
from_gregorian(gyear, gmonth, gday)
click to toggle source
classs method Gregorian to Nanakshahi
date @param [Integer] year Year part of gregorian Date
@param [Integer] month Month part of gregorian Date
@param [Integer] day Day part of gregorian Date
@return [Nanakshahi] Nanakshahi
date object
# File lib/nanakshahi/utils.rb, line 12 def from_gregorian(gyear, gmonth, gday) # Start of time - 1 Chet, 1 Nanakshahi gdate = Date.new(gyear, gmonth, gday) # Before Chet 1, it is previous year in Nanakshahi if (gmonth <= NANAKSHAHI_EPOCH_IN_GREGORIAN.month) && (gday < NANAKSHAHI_EPOCH_IN_GREGORIAN.day) nyear = gyear - NANAKSHAHI_EPOCH_IN_GREGORIAN.year else nyear = gyear - (NANAKSHAHI_EPOCH_IN_GREGORIAN.year - 1) end nanakshahi_months = date_grid(gyear) row = nanakshahi_months.detect { |month| month.include?(gdate) } nday, nmonth = [row.index(gdate), nanakshahi_months.index(row)] # Months are 1 indexed, arrays are 0 indexed nmonth += 1 nday += 1 # Create a new Nanakshahi::Date object self.new(nyear, nmonth, nday) end