7Days to Die時間計算機

Day   :
時間(s)
コマンド
7の倍数

はじめに

当計算機は7Days to Dieのサーバー・クライアントのゲーム内時間を変更する際の時間指定を計算するツールです。 サクッと時間変更したい時にご活用ください。
分指定は計算式がよくわからなかったため未対応です。

また、Day1 00:00が始点であるため、それより前の時間にするとマイナス値で例外エラーが発生します。もし入れてしまった場合は正常値を入力すると元に戻ります。

○更新
a12より計算式が変更されたためこちらも変更しました。

○更新2
分に対応させました。

出力結果の使い方

出力結果はコマンド型と時間のみを出力するようにしてあります。 ゲーム内時間を変更するだけならコマンドの出力結果を使用します。

まず、7Days to Dieのゲーム上で「@キー」を押し、コンソールを出します。
そのコンソールにコマンドの出力結果をそのまま入力すると時間が変更されます。
※コマンドの詳細に関しては別記事をご覧ください。(準備中)


計算方法について

7dtdでは内部時間をint型で管理しています。
つまり、Day、Hour、Minuteをすべて一つの整数で表す必要があります。
そこで、実際の時間の動きを追って計算してみたところ、以下の計算式が浮かび上がりました。

                    // JavaScript
                    (Day - 1) * 24000 + (Hour * 1000) + Math.ceil(Minute * 16.666666666666666666666666666667)
                
                    // C#
                    (Day - 1) * 24000 + (Hour * 1000) + (int)Math.Ceiling((double)Minute * 16.666666666666666666666666666667)
                
まず、Dayは1日目からスタートするので-1をし、更に24000をかけます(後述)。

次に、Hourに1000(後述)をかけてDayに足します

そして最後にMinuteを計算しますが、60分を1000とするため、60/1000した16.66...をかけます
ただし、少数が循環するのである程度のところで四捨五入しました。
また、計算結果に少数が含まれるので更に切り上げます。
切り捨てると分が-1になってしまいます
このことから、後回しになりましたが、Minuteの方で60分を1000とするので、Hourは1000をかけ、Dayは24000をかけます。

要するに1日は24000で、1時間は1000で、1分は(切り上げ)(1 * (60/1000))ということです。


ここまで書いてあれなんですが、分に関しては場合によってはズレがありそうです。
そこまで細かい指定をする必要性はほぼないと思いますが、その点だけご了承ください。