Yukinobu Hamuro
hamur****@adm*****
2003年 12月 27日 (土) 11:14:49 JST
羽室です すみません。 マニュアルが古いままになっていました。 以前は、秒数計算について、現在のmanページにあるように、日付をまたがった計算を前提としていました。 しかし、現在のバージョンでは、時刻間計算のみ(日付をまたげない)可能なように変更しました。 time(時刻1、時刻2)でお願いします。 この変更に伴いまして「ユリウス通日」を導入しました。 ユリウス通日は、整数部にBC4712/01/01からの経過日数を、少数部に時刻を小数点で表したものです。 関数としては、以下の三つを提供しています。 dt2jd:文字列としての日付+時刻からユリウス通日を求める。 jd2date: ユリウス通日から文字列としての日付を求める。 jd2time: ユリウス通日から文字列としての時刻を求める。 そこで次のようにすれば時間を求めることができます。 'dt2jd($日付2,$時刻2)-dt2jd($日付1,$時刻1))*86400' ちなみに、「86400」は一日の秒数です。 ただし、上記だけですと計算誤差が出てしまい、2秒が1.99999などになってしまうので、丸めておく必要があり、以下のようにround関数を使えばよいでしょう。 round((dt2jd($日付2,$時刻2)-dt2jd($日付1,$時刻1))*86400,1) 非常にいかつい式になってしまいますが、現状の関数でも実現可能です。 よろしくお願いします。 nakahara さんは書きました: >こんにちは。中原と申します。 > >xtcalのmanページの中に、timeというコマンドがありますが、 >manページでは、-c 'time($日付,$時間,$日付2,時間2)'という書き方が可能となっ >ていますが >実際やってみると、エラーが出てしまいます。 >timeの引数はいくつまで指定できるのですか? > >_______________________________________________ >MUSASHI-users mailing list >MUSAS****@lists***** >http://lists.sourceforge.jp/mailman/listinfo/musashi-users > ---- Yukinobu Hamuro hamur****@adm*****