StructToTime

MqlDateTime 構造体型の変数を datetime 型に変換した値を返します。

datetime  StructToTime(
  MqlDateTime&  dt_struct      // 日付と時刻の構造体
  );

パラメータ

dt_struct

[in] MqlDateTime構造体型の変数

戻り値

1970年1月1日から経過した秒数を含む tdatetime 型の値

例:

#property script_show_inputs
 
input int   InpYear  = 0;   // Year
input int   InpMonth = 0;   // Month
input int   InpDay   = 0;   // Day
input int   InpHour  = 0;   // Hour
input int   InpMin   = 0;   // Minutes
input int   InpSec   = 0;   // Seconds
 
//+------------------------------------------------------------------+
//| スクリプトプログラム開始関数                                              |
//+------------------------------------------------------------------+
void OnStart()
 {
//--- 入力された値を調整し、変数に書き込む
  int year =  (InpYear<1970 ?1970 : InpYear); // 入力された年が1970年以前の場合は、1970 年が使用される
  int month=  (InpMonth<1 ? 1  : InpMonth > 12  ? 12 : InpMonth);
  int day  =  (InpDay  <1 ? 1  : InpDay   > 31  ? 31 : InpDay);
  int hour =  (InpHour <0 ? 0  : InpHour  > 23  ? 23 : InpHour);
  int min  =  (InpMin  <0 ? 0  : InpMin   > 59  ? 59 : InpMin);
  int sec  =  (InpSec  <0 ? 0  : InpSec   > 59  ? 59 : InpSec);
 
//--- 入力された値をログに表示する
  PrintFormat("Entered date and time: %04u.%02u.%02u %02u:%02u:%02u", InpYear, InpMonth, InpDay, InpHour, InpMin, InpSec);
 
//--- 調整済みの入力値をログに表示する
  PrintFormat("Corrected date and time: %04u.%02u.%02u %02u:%02u:%02u", year, month, day, hour, min, sec);
 
//--- 入力値を対応する構造体フィールドに書き込む
  MqlDateTime time_struct={};
  time_struct.year= year;
  time_struct.mon = month;
  time_struct.day = day;
  time_struct.hour= hour;
  time_struct.min = min;
  time_struct.sec = sec;
 
//--- 構造体の日付と時刻をdatetime型の変数に変換し、
  datetime time = StructToTime(time_struct);
 
//--- MqlDateTime構造体型変数から日時型値への変換結果を表示する
  Print("Converted date and time: ",TimeToString(time,TIME_DATE|TIME_MINUTES|TIME_SECONDS));
 /*
  ゼロのデフォルト値が入力された場合の結果は次のようになります。
  Entered date and time: 0000.00.00 00:00:00
  Corrected date and time: 1970.01.01 00:00:00
  Converted date and time: 1970.01.01 00:00:00
 
  今年の2月の間違った日を入力した場合の結果は次のようになります。
  Entered date and time: 2024.02.31 00:00:00
  Corrected date and time: 2024.02.31 00:00:00
  Converted date and time: 2024.03.02 00:00:00
 */
 }