録画日時の開始と終了の差を計算するとなると、日数と秒数では、まだ日をまたぐ場合の計算が面倒なので、1970年1月1日0時0分0秒からの秒数で表すUNIX時間(UNIX TIME)と相互変換してみる。
年月日を日数に換算したものから、1970年1月1日の日数=719163を引き、1日24時間、1時間60分、1分60秒、つまり日数に24×60×60=86400を掛けて、秒数を足せばUNIX時間になる。
これをバッチファイルで書くとこんなカンジ。環境変数S、HH、MM、SSが日数、時、分、秒。環境変数UにUNIX時間が求められる。
SET /A U=(%S%-719163)*86400+%HH%*3600+%MM%*60+%SS%
逆にUNIX時間から日数、時、分、秒を求めるのはこんなカンジ。
SET /A SS=%U%/86400+719163 SET /A HH=%U%%%86400/3600 SET /A MM=%U%%%86400%%3600/60 SET /A S=%U%%%86400%%3600%%60
ただし、UNIX時間はUTCなので日本時間から変換を行う場合は9時間(9×60×60=32400秒)引く必要があるし、UNIX時間から日本時間を求める場合は9時間(32400秒)足す必要がある。