ふなばです。
マイクロ秒もいれたほうがいいかな、と気がついたのでとりあえず直しときま
す。
# でも、date == date.addmon(0) が、必ずしも成り立たないんですよねえ。
class Time
def addmon(n)
d = Time.at(self)
x = d.year * 12 + (d.mon - 1) + n
y = x / 12
m = x % 12 + 1
g = Time.mktime(y, m, d.mday, 12)
until g.mon == m
g -= 86400
end
g = Time.mktime(g.year, g.mon, g.mday, d.hour, d.min, d.sec)
until g.min == d.min
g -= 1
end
g + d.usec / 1e6
end
end
ふなば ただよし