TimeToString

1970년 1월 1일 이후 경과된 시간(초)을 포함하는 값을 "yyyy.mm.dd hh:mi" 형식의 문자열로 변환.

string  TimeToString(
   datetime  value,                           // 숫자
   int       mode=TIME_DATE|TIME_MINUTES      // 서식 출력
   );

매개변수

[in]  1970년 1월 1일 00:00 부터의 시간(초).

mode=TIME_DATE|TIME_MINUTES

[in] 추가 데이터 입력 모드. 하나 또는 결합된 플래그일 수 있습니다:
TIME_DATE는 "yyyy.mm.dd",
TIME_MINUTES는 "hh:mi",
TIME_SECONDS는 "hh:mi:ss"로 결과를 가져옴.

값 반환

String.

 

예:

datetime ExtBarTimeOpen;
 
//+------------------------------------------------------------------+
//| 맞춤형 지표 초기화 함수                                             |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- 타이머를 1초로 세팅
   EventSetTimer(1);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| 맞춤형 지표 초기화 해제 함수                                        |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Comment("");
  }
//+------------------------------------------------------------------+
//| 맞춤형 지표 반복 함수                                               |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//--- 현재 바의 오픈 시간을 가져옵니다.
   ExtBarTimeOpen=time[rates_total-1];
//--- 다음번 호출을 위해 prev_calculated의 값을 반환합니다.
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| 타이머 함수                                                        |
//+------------------------------------------------------------------+
void OnTimer()
  {
//--- 이전 바의 오픈 시간을 가져옵니다.
   static datetime bar_open_time=ExtBarTimeOpen;
//--- 바가 열린 후 경과한 초의 수를 계산합니다.
   static int seconds=int(TimeCurrent()-ExtBarTimeOpen);
//--- 이전 개장 시간이 현재 개장 시간과 같지 않으면 이는 새로운 바입니다.
//--- 새로운 오픈 시간을 이전 시간으로 쓰고 초를 0으로 설정합니다.
   if(bar_open_time!=ExtBarTimeOpen)
     {
      bar_open_time=ExtBarTimeOpen;
      seconds=0;
     }
//--- 바가 열린 후 경과한 초의 수를 늘리고 조정합니다.
   seconds++;
   if(seconds>PeriodSeconds(PERIOD_CURRENT))
      seconds=0;
//---yyyy.mm.dd hh:mi으로 된 바 오픈 시간(
   string bar_time_open=TimeToString(ExtBarTimeOpen);
//--- yyyy.mm.dd hh:mi:ss으로 된 현재 시간
   string time_current=TimeToString(TimeCurrent(),TIME_DATE|TIME_MINUTES|TIME_SECONDS);
//--- 새로운 바가 열릴 때까지 남은 초의 수
   int    sec_left=PeriodSeconds(PERIOD_CURRENT)-seconds;
//--- hh:mm:ss으로 된 현재 바가 닫힐 때까지 남은 시간
   string time_left=TimeToString(sec_left,TIME_MINUTES|TIME_SECONDS);
//--- 출력 문자열 생성
   string txt=StringFormat("Opening time of the current bar: %s\n"+
                           "Time Current: %s\n"+
                           "Seconds have passed since the bar opened: %d\n"+
                           "Approximately seconds left before bar closes: %d\n"+
                           "Time remaining until bar closes: %s",bar_time_open,time_current,seconds,sec_left,time_left);
//--- 바 오픈 시간과 현재 시간을 표시합니다.
//--- 현재 바가 열린 이후 지나간 초와 닫힐 때까지 남은 초
//--- 코멘트에서 현재 바가 닫힐 때까지 남은 시간
   Comment(txt);
   /*
   result on M1:
   Opening time of the current bar2024.02.22 18:06
   Time Current2024.02.22 18:06:24
   Seconds have passed since the bar opened25
   Approximately seconds left before bar closes35
   Time remaining until bar closes00:00:35
 
   result on M5:
   Opening time of the current bar2024.02.22 18:05
   Time Current2024.02.22 18:07:28
   Seconds have passed since the bar opened149
   Approximately seconds left before bar closes151
   Time remaining until bar closes00:02:31
 
   result on H1:
   Opening time of the current bar2024.02.22 18:00
   Time Current2024.02.22 18:08:13
   Seconds have passed since the bar opened494
   Approximately seconds left before bar closes3106
   Time remaining until bar closes00:51:46
   
   result on D1:
   Opening time of the current bar2024.02.22 00:00
   Time Current2024.02.22 18:11:01
   Seconds have passed since the bar opened65462
   Approximately seconds left before bar closes20938
   Time remaining until bar closes05:48:58
   */
  }

추가 참조

StringToTime, TimeToStruct