公開:2008/09/24(水) 最終更新:2008/12/21(日) |
Calendrier (カランドリエ,フランス語で「暦」の意味) は暦の計算を簡単に行うC言語ライブラリで,C++ からも使用可能です. ソースを販売しています.(個人用ライセンス:\1,000)
Calendrier リファレンス (Ver.1.0) 公開しました.
次の暦および通算日数に対応しています.
通算日数は日付のみを扱える整数型と,1秒未満も扱える浮動小数型 (Excel のシリアル値と同様) があります.通算秒数は整数型のみです.
通算日数の基準日は1日単位, 通算秒数の基準日時は1秒単位で任意に選ぶことができます. 下記の基準日が定義されていますが,それ以外の任意の基準日時も使用可能です.
これらのソースの中には,ここに挙げた関数とほとんど同じものも含まれます. また,日付 ⇔ 通算日数変換アルゴリズムの解説書 (HTML) 付です.
UNIX Time (time_t 型または time64_t 型) を使用する標準Cライブラリ関数は,1970/01/01(木) 00:00:00 UTC より前の日時を扱うことができません.time_t は符号付整数なので, 負の値を使えば1969年以前の日付も表現できるはずですが, 多くの処理系のライブラリ関数は負の time_t に対してエラーを返すので使えません.これに対し Calendrier の関数は,負の time_t (time64_t) 型も扱うことができます.
ネットで検索すると, それ以前の日時を扱うことのできるグレゴリオ暦計算プログラムのソースが見つかりますが, それらの多くは紀元前の日付に対応していないので, そのまま使用すると誤った結果を返します. これに対し,Calendrier は紀元前の日時も正しく計算します.
ユリウス日 (Julian Day,JD),修正ユリウス日 (Modified JD,MJD), ANSI Date などの通算日数に加え,UNIX Time (通算秒数) や Microsoft Excel のシリアル値にも対応しています.
さまざまなCコンパイラやさまざまな CPU で使用できるよう, C言語の標準規格に従った移植性の高いコードになっていますので, ほとんど修正なしで使用できるはずです.また, (浮動小数型通算日数を使用しない場合は) Cの標準ライブラリをほとんど使用しないので, ライブラリが十分サポートされていない組込み開発環境でも使用できます.
移植した環境で日付と通算日数の相互変換などをテストするためのサンプルプログラムが付いています.
(標準入出力とファイルシステムのある環境用なので,
組込み開発環境で使う場合には改造が必要です.)
なお,動作確認は次の環境で行っています.
多くの処理系で高速に計算できるよう, アルゴリズムやコーディングを工夫しています. 特に,乗除算が遅い処理系でもあまり遅くならないよう配慮しています.
扱う日付の範囲,処理系の仕様,メモリ容量の制約等に応じて, 年や通算日数に使用する整数型のサイズを選択することができます.
例えば多くの32ビット CPU では普通, 年と通算日数に4バイト整数を使うと思いますが, 天文学的な時間を扱うため8バイト整数に変更したり, 8ビットまたは16ビット CPU において高速化とメモリ節約のために年を2バイト整数にすることも簡単にできます. (1〜2行書き替えるだけ.)
フリーゲルの公式や,ネット上でソースが公開されている
暦日計算プログラムの中には浮動小数を使用するものがありますが,
浮動小数演算が遅かったり,そもそもサポートされていない処理系には適しません.
Calendrier のほとんどの関数は整数演算しか使用しないので,
そのような処理系でも使用可能です.
(浮動小数型通算日数を扱う関数を除く. )
コンパイルオプションで,浮動小数の使用を ON/OFF することができます.
上記の理由 (移植性,高速,カスタマイズ,整数演算) により,組み込みソフトでの利用にも適しています.
ソースコードを低価格で提供します. わずかな禁止条件を除けば,商用・非商用ソフトへの使用や改造も自由です.
ソースコードの価格にはサポートは含まれませんが, 作者の時間が許す範囲でメールによるサポートも行います (内容・難易度により有料または無料). サポート依頼内容の概要をメールしていただければ御見積もりします.
下記の条件に違反しない限り,
商用・非商用にかかわらず自由に利用・改造していただいて結構です.
本ソースコードを使用している製品に著作権表示等をする必要もありません.
価格
ライセンス種別 | 単価 | 説明 |
---|---|---|
個人用 | \1,000 | 購入者1名のみソース閲覧・使用可能. |
プロジェクト用 | \2,000 | ソフトウェア開発プロジェクト関係者のみソース閲覧・使用可能. |
納品用 | \3,000 | ソフトウェア開発プロジェクト関係者 + 当該ソフトウェアの納品先のみソース閲覧・使用可能. |
購入後,差額にてライセンスのグレードアップ (個人用 → プロジェクト用 → 納品用) も可能です.
注文方法はこちら.
このページの主な更新は Blog でお知らせします.
Copyright © 2008-2009 noocyte, All rights reserved. E-mail: relipmoced (a) yahoo.co.jp (" (a) " を半角のアットマークに書き替えてください.) リンクはご自由に. 「noocyte のプログラミング研究室」トップページに戻る. |
|