DateTime
説明
日時の取得および操作を行う関数を含むクラスです。
このDateTimeクラスを使用することで、FlexSim時間として格納される日時の作成および操作が可能となります。FlexSim時間は、1601年1月1日から始まる秒数で定義されます。FlexSim時間は、モデル時間単位の指定に影響を受けることはなく、常に秒単位となります。
モデル設定
新しいモデルを開始する際、モデルの開始日時を指定できます。モデルの開始日時と停止時間は、後でシミュレーションコントロールバーの実行時間オプションで変更できます。[モデル設定]ウィンドウで日時表示の形式を指定することもできます。これらの形式は、DateTimeを文字列として表示したり、DateTimeを作成する際に使用します。
Excelのインポート/エクスポート
Excelドキュメントから日時をインポートする場合、文字列もしくはExcel時間の数値としてインポートできます。このDateTimeクラスを使用することで、それらの文字列やExcel時間をFlexSim時間に変換することができます。エクスポートに関しては、DateTime.toString()メソッドを使用して、形式設定された日付および/または時間をグローバルテーブルに書き込むことができます。
ダッシュボードチャート
時間プロットなどのダッシュボードチャートでは、FlexSim時間を使用してXまたはY軸上に日時を表示することができます。この操作は、統計コレクターでDateTimeを記録することで行います。
プロパティ
day | 月の日付 |
dayOfWeek | 週の曜日 |
hour | 1日における時間 |
millisecond | 1秒におけるミリ秒。 |
minute | 1時間における分。 |
month | 1年における月 |
second | 1分における秒。 |
totalDays | 1601年1月1日から始まる日数。 |
totalHours | 1601年1月1日から始まる時間数。 |
totalMilliseconds | 1601年1月1日から始まるミリ秒数。 |
totalMinutes | 1601年1月1日から始まる分数。 |
totalSeconds | 1601年1月1日から始まる秒数。 |
value | FlexSim時間の日時の値。 |
year | 年 |
メソッド
toString | DateTimeを人が判読できる文字列に変換します。 |
コンストラクター
DateTime | DateTimeを作成します。 |
静的メソッド
compose | コンポーネントパートから新しいDateTimeを作成します。 |
days | 日数から新しいDateTimeを作成します。 |
fromExcelTime | Excel時間をFlexSim時間に変換します。 |
hours | 時間数から新しいDateTimeを作成します。 |
milliseconds | ミリ秒数から新しいDateTimeを作成します。 |
minutes | 分数から新しいDateTimeを作成します。 |
seconds | 秒数から新しいDateTimeを作成します。 |
演算子
- | あるDateTimeから別のDateTimeを減算します。 |
!= | 2つのDateTimeを比較します。 |
+ | 2つのDateTimeを加算します。 |
+= | 2つのDateTimeの和をDateTimeに代入します。 |
< | 2つのDateTimeを比較します。 |
<= | 2つのDateTimeを比較します。 |
-= | 2つのDateTimeの差をDateTimeに代入します。 |
== | 2つのDateTimeを比較します。 |
> | 2つのDateTimeを比較します。 |
>= | 2つのDateTimeを比較します。 |
詳細
DateTime.value
readonly double value
説明
FlexSim時間の日時の値。
このプロパティはDateTime.totalSecondsと等しいか、DateTimeをdoubleに変換した値です。
double currentTime = Model.dateTime.value;
double currentTime = Model.dateTime;
DateTime.toString()
string toString( string format = ) |
パラメータ
format | formatがNULLの場合、デフォルトのWindows日時形式が使用されます。 |
説明
DateTimeを人が判読できる文字列に変換します。
このメソッドでは、形式設定にWindows設定を使用します。カスタム形式を使用する場合、次の形式オプションを利用できます。指定子 | 説明 | 例 |
---|---|---|
%% | パーセント文字(%) | % |
%n | 復帰改行文字 | |
%t | 水平タブ文字 | |
年 | ||
%Y | 4桁年 | 2017 |
%y | 年の下2桁 | 17 |
%C | 年の上2桁 | 20 |
月 | ||
%b | 月の名前(短縮) | Oct |
%B | 月の名前(短縮なし) | October |
%m | 数値(1~12)で表した月 | 10 |
週 | ||
%U | 1年における週を数値(00~53)で表し、日曜日を週の始めとする | 15 |
%W | 1年における週を数値(00~53)で表し、月曜日を週の始めとする | 15 |
年/月における日数 | ||
%j | 1年における何日目かを3桁の数値(001~366)で表す | 045 |
%d | 月における何日目かを2桁の数値(01~31)で表す | 05 |
%e | 月における何日目かを1桁の数値(1~31)で表す | 5 |
週の曜日 | ||
%a | 曜日の名前(短縮) | Fri |
%A | 曜日の名前(短縮なし) | Friday |
%w | 曜日を数値(0~6)で表し、0を日曜日とする | 3 |
時間、分、秒 | ||
%H | 24時間表示の時間を2桁の数値(00~23)で表す | 08 |
%I | 12時間表示の時間を2桁の数値(01~12)で表す | 08 |
%M | 分を2桁の数値(00~59)で表す | 30 |
%S | 秒を2桁の数値(00~60)で表す | 25 |
その他 | ||
%c | 標準日時(Windowsのデフォルト設定) | 09/24/17 08:00:00 |
%x | 標準年月日(Windowsのデフォルト設定) | 2017-09-24 |
%X | 標準時間(Windowsのデフォルト設定) | 08:00:00 |
%D | %m/%d/%yと等しい | 2017-09-24 |
%F | %Y-%m-%dと等しい | 2017-09-24 |
%r | 12時間表示(Windows設定を基準とする) | 08:00:00 |
%R | %H:%Mと等しい | 08:00 |
%T | %H:%M:%Sと等しい | 08:00:00 |
%p | AMまたはPM(Windows設定を基準とする) | AM |
%z | UTC時間からのオフセット | -0600 |
%Z | タイムゾーン名またはその略称 | 山地夏時間 |
string currentDateTime = Model.dateTime.toString();
string currentDateTime = Model.dateTime.toString("%H:%M:%S");
DateTimeコンストラクター
DateTime( double time ) |
DateTime( string date , string format = 0 ) |
DateTime( int days , int hours , int minutes = 0 , int seconds = 0 , int milliseconds = 0 ) |
パラメータ
time | 1601年1月1日から始まる秒数。 |
date | 日付の文字列表示。 |
format | formatがNULLの場合、デフォルトのWindows日時形式が使用されます。 |
days | 最後のDateTimeに追加する日数 |
hours | 最後のDateTimeに追加する時間数(通常は24未満) |
minutes | 最後のDateTimeに追加する分数(通常は60未満) |
seconds | 最後のDateTimeに追加する秒数(通常は60未満) |
milliseconds | 最後のDateTimeに追加するミリ秒数(通常は1000未満) |
説明
DateTimeを作成します。
DateTime theDate = DateTime(3600);
2つのDateTimeの和を求める場合、時間は期間として処理されます。たとえば、以下のように設定するとします。
DateTime futureDate = Model.dateTime + DateTime(340); //Add 340 seconds to the current model time
2番目のコンストラクターを使用して、日付の文字列表示からDateTimeを作成できます。形式設定オプションについては、toString()を参照してください。
DateTime theDate = DateTime("12/31/2019 8:00:00 AM", "%m/%d/%Y %I:%M:%S %p");
3番目のコンストラクターを使用して、直近の重要マーカーまで値を切り捨てたDateTimeを作成できます。たとえば、現在のモデル時間が特定の日における8:00~9:00の場合、次のコードを使用することで、同日の8:00を表す日時を作成できます。
DateTime roundedToHour = DateTime(Model.dateTime.totalDays, Model.dateTime.hours);
DateTime.compose()
static DateTime compose( int year , int month = 1 , int day = 1 , int hour = 0 , int minute = 0 , int second = 0 , int millisecond = 0 ) |
パラメータ
year | DateTimeの年 |
month | DateTimeの月(1~12) |
day | DateTimeの日(1~28、29、30、31) |
hour | DateTimeの時間(0~23) |
minute | DateTimeの分(0~59) |
second | DateTimeの秒(0~59) |
millisecond | DateTimeのミリ秒(0~999) |
説明
コンポーネントパートから新しいDateTimeを作成します。
DateTime composedDateTime = DateTime.compose(2019, 12, 31, 23, 59, 59);
DateTime.fromExcelTime()
static DateTime fromExcelTime( double excelTime ) |
説明
Excel時間をFlexSim時間に変換します。
Excelのインポートを実行する際、[データの区別]は[値のみ]に設定できます。これによって、日付を格納するセルがExcel時間単位の数値としてFlexSimにインポートされます。このメソッドでは、そのExcel時間をFlexSim時間に変換します。DateTime dateTime = DateTime.fromExcelTime(excelTime);