datetime

実行した日の前日21時から72時間先までを1時間単位で出力というようなこをとよくやるのだが、いつも簡単に書けた試しがない。

from datetime import datetime
from datetime import timedelta

d = datetime.today() + timedelta(days=-1) 
t = datetime(d.year, d.month, d.day, 21)

for n in range(0, 72):
    print t + timedelta(hours=n)

もっと簡単に書けるのか知りたい。

Perlの何が面倒って strptime がない。

最近はできるだけPythonを使っているが、ちょこちょこしたものしか書かないから一向に上達しない。今日はPerlでプログラムを書く用事ができたので久しぶりに触る。
いつもながら不思議に思っているのは POSIXモジュールに strftime は入ってるが strptime が入っていないことだ。strptime がPOSIX非準拠なのかどうかわからないが C で time.h に入ってる関数が入ってないのも不便だし違和感を感じる。以前に代替品がPerl標準ライブラリに入っているのかと探してみたこともあるのだが見つからなかった。このときは Datetimeモジュールを入れて誤魔化した。
複数の異る環境で使うし、できれば標準的なモジュールで簡潔に記述できるといいのにと思って、今回検索してみたら、
モダンPerlの世界へようこそ「第15回 DateTime:APIの標準化をめざして」
という記事をみつけて読んで納得。
この記事によれば、結局、標準モジュールには日付文字列をパースする関数はなくて、別モジュールが必要なようである。それも Datetime よりは Time::Piece を使う方が今後のためにも良さそうだ。

Scientific Scripting with Python

iPhone の書籍。凝りずに Scientific Scripting with Pythonを AppStore から350円で購入。
フォントサイズと上下のスクロールが丁度いい感じで読み易い。内容も移動中に読むには丁度良い感じ。

横画面が更に読みやすい。

Python Cheet Sheet

続いてPython Cheet Sheet を購入。価格は115円。Cheet Sheet なんかは iPhone に合うかと考えたが、移動中にCheet Sheetが必要なわけでもなくコーディングするデスクトップPCやノートPCでちょいと見れる環境があればいいことに気がつく。まあ、価格からすれば許せるか。

http://www.concentricsky.com/products/iphone/python-cheat-sheet/

iPhoneでPythonの本を読む

オライリーの本も収納に場所をとるので iPhone で読んだらいいのではないかとAppStoreからPython Coocbook 第2版(洋書)を購入してみた。価格は600円。日本語版を書籍で買えば4000円以上するんだから、試しに買うには丁度いいのではないだろうか。
画面の狭さが難点だが、いつでも読める本を持ち歩けるのはいいかもしれない。iPhone 3G だと結構もたつくのが厳しいかな。3GSだとどれくらい早いかはわからないのだけど。

曜日の取得

Pythonのdateオブジェクトでは、weekdayメソッドを使えば0から6が取得できて月曜からはじまり。isoweekdayメソッドでは1からで月曜はじまり。
PerlのDate::Calcなどの Day_of_Weekから得られる数字は 0が日曜日、1が月曜日で6までの値が取得できる。
RubyのDateモジュールではwdayを使って、0から月曜日はじまり。
.NET環境は0から日曜はじまり。ExcelVBAでは開始が指定できたりする。
Pythonが日曜日はじまりだと勘違いして、本日少々トラブルをおこした。