39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
|
# File 'lib/cultural_dates/date_transform.rb', line 39
def to_edtf_date(d)
if d[:day]
date = Date.new(d[:year],d[:month],d[:day])
date.day_precision!
elsif(d[:month])
date = Date.new(d[:year],d[:month])
date.unspecified! :day
elsif(d[:year])
if (d[:era] == "BCE")
date = Date.new(d[:year]+1)
else
date = Date.new(d[:year])
end
date.unspecified! :month
date.unspecified! :day
elsif(d[:decade])
date = Date.new(d[:decade])
date.unspecified.year[3]= true
date.unspecified! :month
date.unspecified! :day
elsif(d[:century])
c = d[:century] * 100
c -=99 if (d[:era] == "BCE")
date = Date.new(c)
date.unspecified.year[3]= true
date.unspecified.year[2]= true
date.unspecified! :month
date.unspecified! :day
end
date.uncertain! unless d[:certainty]
date
end
|