Google Service

スプレッドシートにおける日付、時間の扱い

どんなシステムでも日付、時間の扱いがあると思いますが、スプレッドシートではどうなのでしょう。

てっとり早く数値で比較してみました。

基準となる整数の0は「1989年12月30日 0時0分0秒」でした。
また、整数の1は「1989年12月31日 0時0分0秒」であることから、整数部分は基準日からの日数を表していることが分かります。

今度は日付文字列を基準に、秒を変えて表示してみました。数値は小数点第15位まで表示しています。
基準に対して1秒進めた「1989/12/30 00:00:01」では「00000.000011574074074」となりました。

これは1を1日の秒数(246060[=86400])で割った値に相当します。

結果のスプレッドシートはこちらです。

.NETのC#におけるTicksと上手く比較できないかと考えていたのですが、あちらはグレゴリオ暦の0年1月1日 0時0分0秒が基準であり、且つ1Tick当たり100ナノ秒ととてつもなくミスマッチなので、潔くあきらめました。
[BLOGCARD url=”https://msdn.microsoft.com/ja-jp/library/system.datetime.ticks%28v=vs.110%29.aspx?f=255&MSPPError=-2147217396″][/BLOGCARD]

スプレッドシートにおいて、小数を扱った秒数のカウントは危険ですのでご注意ください。
時間、分、秒の演算を行うときは「time()」関数を利用しましょう。

追記
Excelも調べてみました。
Excelは基準日が「1900年1月1日 0時0分0秒」でしたが、時刻の考え方は一緒なんですね。

ABOUT ME
Nozomu.Kon
トータルソフトウェアコーディネーターがあなたのお困りを即時に解決!