日付を変更するVB
- (2009-02-25 17:41:25)
-------------------------------
PCの日付を変えてバックデートでデイリーの売上集計(日次売上処理)をすることがある。日次の集計だから毎日、業務の終わりにすることが商売の本筋ではあるが、翌日キャンセルや決済未完了や配送先不明瞭で出荷しなかったりと多少の例外が発生する。
日次で売上を閉めると数日後、経理情報の修正や訂正作業が発生する。最終的な不良債権は別として初期のトラブルや例外処理でペンディング処理になるものも注文後48時間程度でかなりの確率で状況がフィックスする。
そんなかんだで日次集計を数日後に行うようにした。数日後に日次集計を行うデメリットは「当日」前提でプログラムを書いているので、日にち入力型のプログラムに変更するか、PCの日付をマニュアルで戻すかである。とりえあず集計プログラムは変更せずにPCに日付を戻す運用でやる。
DOS窓で「date」コマンドを打ち込んでいたが、コマンドラインの打ち込み負担や日付の戻し忘れが発生。自分がやるならまだしも経理スタッフに任せるには大変。VBでワンクリックでバックデートになるプログラムを制作した。
中身はDOSのコマンドを発行するだけのものだが役立つ。案外時間がかかったのが正しい日時に戻すプログラム。「桜時計」などntp系のフリーソフトが多数インターネットで無償公開されているので楽勝ではないかと予想していた。
しかし、ntpサーバを利用して時刻合わせを行う単発のコマンドラインはないようだ。unix系ならあるのだろうか?しかしあるにせよそれは使えない。簡単なようで実はntpのプロトコルを理解した上でそれなりのネットワークプログラミングが必要なようだ。私には無理だった。
vectorでコマンドラインから時刻合わせをしてくれるプログラムを見つけた。下記のプログラムを利用させてもらうことにした。
「超シンプル時刻合わせ」
setntptime
作成した日付変更プログラム(DOSコマンドを叩くだけのVB):
・指定日にバックデート
Shiteibi = Text1.Text
Shell ("cmd.exe /c date " & Shiteibi)
・日時合わせ
Shell ("cmd.exe /c C:\setntptime.exe")