裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

n日後を返す関数を返す関数

2011年02月17日 | ブログラミング

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"


コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 与えられた数字のケタ数 | トップ | ブランド志向はここまでくるか »
最新の画像もっと見る

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

ブログラミング」カテゴリの最新記事