[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[mhc:01636] Re: カレンダのフォーマット



乃村です.

On Thu, 19 Sep 2002 15:00:46 +0900,
	Takashi Hiromatsu <takashi-hiromatsu@xxxxxxxxxxx> said:

> 反応していただいた、御三方に、ISO原文をお送りいたしました。
> 参考にしてください。

ありがとうございます.探す手間が省けました.

一般的には,原文の入手先 (例えば URL) とかを教えていただければ,
必要があれば,取りに行きますので,次回,このような場合は,そうし
ていただけるとよろしいかと思います.その方が,ML にも有用な情報
を残せると思いますので.

さて,本題ですが,ISO では,

  1年の最初の木曜日を含む週を第一週とする.

という表現があって,これは分かりやすいですね.
2002年12月31 が第一週と数えられるのも,すぐに合点がいきます.
# 納得はできんけど.

以下の通りで %V 互換のようです.
やや無駄なコードがあるような気もしますが,
それは,emacs 21 の strftime.c からかっぱらったせいです.:-)

(defsubst mhc-date/iso-week-days (yday wday)
  (- yday -3 (% (- yday wday -382) 7)))

(defsubst mhc-date-cw (date)
  (mhc-date-let date
    (let* ((yday (mhc-date/day-number yy mm dd))
	   (days (mhc-date/iso-week-days yday ww))
	   (d))
      (if (< days 0)
	  (setq days (mhc-date/iso-week-days 
		      (+ yday 365 (if (mhc-date/leap-year-p (1- yy)) 1 0)) ww))
	(setq d (mhc-date/iso-week-days
		 (- yday 365 (if (mhc-date/leap-year-p yy) 1 0)) ww))
	(if (<= 0 d) (setq days d)))
      (1+ (/ days 7)))))


日曜はじまりの場合をどうすればいいのかはよく分かりません.
キリスト教文化でで日曜はじまりを使うことはタブーのような
気もしないでもないので,いらぬ心配なのでしょうか.
--
nom