sTimeToVariables

Miscellaneous
It issuies visual alerts to the screen
0 Views
0 Downloads
0 Favorites
sTimeToVariables
//+------------------------------------------------------------------+
//|                                             sTimeToVariables.mq5 |
//+------------------------------------------------------------------+

#property copyright "http://dmffx.com"
#property link      "http://dmffx.com"
//+------------------------------------------------------------------+
//| Script start function                                            |
//+------------------------------------------------------------------+
int OnStart()
  {
   datetime TimeNow=TimeCurrent();
   int Y,M,D,h,m,s;
   fTimeToVariables(TimeNow,Y,M,D,h,m,s);
   MqlDateTime tm;
   TimeToStruct(TimeNow,tm);

   Alert("TimeCurrent = "+
         IntegerToString(tm.year)+"."+IntegerToString(tm.mon)+"."+IntegerToString(tm.day)+" "+
         IntegerToString(tm.hour)+":"+IntegerToString(tm.min)+":"+IntegerToString(tm.sec)+
         ", TimeToVariables = "+
         IntegerToString(Y)+"."+IntegerToString(M)+"."+IntegerToString(D)+" "+
         IntegerToString(h)+":"+IntegerToString(m)+":"+IntegerToString(s));
   return(0);
  }
//+------------------------------------------------------------------+
//| fTimeToVariables                                                 |
//+------------------------------------------------------------------+
void fTimeToVariables(datetime TIME,int  &YEAR,int  &MONTH,int  &DAY,int  &HOUR,int  &MINUTE,int  &SECOND)
  {
   int dst=(int)TIME%86400;
   HOUR=dst/3600;
   dst-=(HOUR*3600);
   MINUTE=dst/60;
   SECOND=dst%60;
   int dn=(int)TIME/86400;
   int edn=dn+365;
   int qen=edn/1461;
   int dfqs=edn-(qen*1461);
   int yfqs;
   int dfys;
   if(dfqs<1095)
     {
      yfqs=dfqs/365;
      YEAR=1969+qen*4+yfqs;
      dfys=dfqs-(yfqs*365);
     }
   else
     {
      yfqs=3;
      YEAR=1969+qen*4+yfqs;
      dfys=dfqs-(yfqs*365);
      if(dfys==59)
        {
         MONTH=2;
         DAY=29;
         return;
        }
      else if(dfys>59)
        {
         dfys--;
        }
     }
   int mei[]={-1,30,58,89,119,150,180,211,242,272,303,333,364};
   for(MONTH=1;MONTH<13;MONTH++)
     {
      if(dfys<=mei[MONTH])
        {
         DAY=dfys-mei[MONTH-1];
         return;
        }
     }
  }
//+------------------------------------------------------------------+

Comments