Hatena::Groupcadr

わだばLisperになる このページをアンテナに追加 RSSフィード

2004 | 12 |
2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |

2010-08-23

KMRCLを眺める(191) DATE-STRING

| 23:44 | KMRCLを眺める(191) DATE-STRING - わだばLisperになる を含むブックマーク はてなブックマーク - KMRCLを眺める(191) DATE-STRING - わだばLisperになる

今回は、KMRCLのdatetime.lispからDATE-STRINGです。

名前からして日付の文字列を返す感じですが、動作は、

(KL:DATE-STRING)
;⇒ "Mon 23 Aug 2010 23:35:39"

という感じです。

定義は、

(defun date-string (&optional (ut (get-universal-time)))
  (if (typep ut 'integer)
      (multiple-value-bind (sec min hr day mon year dow daylight-p zone)
          (decode-universal-time ut)
        (declare (ignore daylight-p zone))
        (format nil "~[Mon~;Tue~;Wed~;Thu~;Fri~;Sat~;Sun~] ~d ~[Jan~;Feb~;Mar~;Apr~;May~;Jun~;Jul~;Aug~;Sep~;Oct~;Nov~;Dec~] ~d ~2,'0d:~2,'0d:~2,'0d"
                dow
                day
                (1- mon)
                year
                hr min sec))))

となっています。

FORMATが活躍していますが、

(format nil "~[Mon~;Tue~;Wed~;Thu~;Fri~;Sat~;Sun~]" 3)
;⇒ "Thu"

などは使う機会も結構ありそうです。

毎度使いたい時には書式を忘れてますが…

ゲスト



トラックバック - http://cadr.g.hatena.ne.jp/g000001/20100823