Gaucheプログラミング(立読み版) > 第2部: 実用 > スケジュールCGIを書こう > 時間型と日付型 > ある日付を与えてその月の最初の日を求める


[Prev] [Next] [Up] [Contents][フレーム表示] [フレーム解除

ある日付を与えてその月の最初の日を求める 応援する 

ここでは日付型をsrfi-19ライブラリの<date>型として扱います。 srfi-19ライブラリを使用するためには、あらかじめ(use srfi-19)を評価させておく必要があります。

まず共通の処理として、月と年を与えてその月の1日を求めるmake-month手続きを書いておきます。

 (define (make-month m y)
   (make-date 0 0 0 0 1 m y (date-zone-offset (current-date))))

(date-zone-offset (current-date))でデフォルトのゾーンオフセットを求めています。

<date>型の値を与えてその日付の月の最初の日を求めるには次の手順で行います。

  1. その日付の月の値と年の値を求める
  2. 1で求めた月の値と年の値を使って、その月の1日の日付を生成する

「<date>型の値を生成する」で見たように、ある日付の月の値を得るにはdate-month手続きが使え、ある日付の年の値を得るにはdate-year手続きが使えました。

上に書いたmake-month手続きを使うと、任意の日付dateを与えてその月の最初の日を生成するfist-day-of-month手続きは次の通りに書けます。

 (define (first-day-of-month date)
   (make-month (date-month date) (date-year date)))

[Prev] [Next] [Up] [Contents][フレーム表示] [フレーム解除

このサイトについて|ヘルプ|Q&A|個人情報保護|プライバシーポリシー|利用規約|コメント・トラックバック規約|削除規程|広告掲載
Copyright (c) 2005-2007 Time Intermedia Corporation