http://ja.doukaku.org/29/
整数nを渡すと「日時のデータを受け取って、n日後の日時を返す関数」を返す関数を作ってください。関数を返す関数が作れない場合は、関数の代わりになるようなオブジェクトでも構いません。
Pythonの対話的インタプリタで表現すると下のようになります。
>>> def n_days_later(n):
?????
>>> five_days_later = n_days_later(5)
>>> datetime.datetime.now()
datetime.datetime(2007, 7, 20, 20, 11, 42, 78000)
>>> five_days_later(_)
datetime.datetime(2007, 7, 25, 20, 11, 42, 78000)
出題の意図としては「関数を返す関数」と「日時の差分の扱い方」を、それぞれ単体だと簡単すぎるので合わせ技にしてみた、というところです。
「2038年問題に注意せよ」と言う注意書きがあるけど
func <- function(s=Sys.Date(), n=0)
{
substr(as.POSIXct(s)+n*86400, 1, 10)
}
実行例
> func()
[1] "2011-02-17"
> func("2035-01-01", 10000)
[1] "2062-05-19"