Скачать MetaTrader 5

"развернуть" дату задом-наперёд...

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Форматируй текст в редакторе сообщений. Это удобно!
kombat
3276
kombat 2008.12.25 18:59 

Понадобилось тут для одного скрипта дату подставлять.

Вроде бы не проблема:

string D1=TimeToStr(TimeLocal(),TIME_DATE);

однако формат 2008.12.25 оказался неподходящим...

нужно 25.12.2008, нууу... тож не особо проблема, и сделал так:

string D=TimeDay(TimeLocal())+"."+TimeMonth(TimeLocal())+"."+TimeYear(TimeLocal());

а нет ли случайно других способов "развернуть" формат даты?

Yuriy Zaytsev
13772
Yuriy Zaytsev 2008.12.25 19:02  
kombat >>:

Понадобилось тут для одного скрипта дату подставлять.

Вроде бы не проблема:

однако формат 2008.12.25 оказался неподходящим...

нужно 25.12.2008, нууу... тож не особо проблема, и сделал так:

а нет ли случайно других способов "развернуть" формат даты?

но проблем


StringSubstr( string text, int start, int length=0)



string DATEforKOMBAT = Substring( TimeTosStr( CurrenDate() ), 8,2 ) +" ."+ Substring( TimeTosStr( CurrenDate() ), 5, 2 ) + "." + Substring( TimeTosStr( CurrenDate() ), 0, 4 )


ну а как еще поворачивать ?

Ваш способ тоже годится

kombat
3276
kombat 2008.12.25 19:18  
YuraZ писал(а) >>

ну а как еще поворачивать ?

Дык вдруг что в справке пропустил...

или того, скрытые возможности TimeTosStr() какие...

;)))

А пока сделал функцию, она покороче будет...

string DateNormal(datetime d)
{
string date=TimeDay(d)+"."+TimeMonth(d)+"."+TimeYear(d);
return(date);
}
kombat
3276
kombat 2008.12.25 21:38  

Набор функций возвращающих строку даты в формате дд.мм.гггг

string DateRev(datetime d)
{
string date=TimeDay(d)+"."+TimeMonth(d)+"."+TimeYear(d);
return(date);
}

//---
string DateRevLocal()
{
datetime d=TimeLocal();
string date=TimeDay(d)+"."+TimeMonth(d)+"."+TimeYear(d);
return(date);
}

//--- 
string DateRevCurrent()
{
datetime d=TimeCurrent();
string date=TimeDay(d)+"."+TimeMonth(d)+"."+TimeYear(d);
return(date);
}
Виктор
Модератор
6559
Виктор 2008.12.25 23:27  
А незначащие нули здесь сохраняются?
kombat
3276
kombat 2008.12.25 23:47  
granit77 писал(а) >>
А незначащие нули здесь сохраняются?

нет...

если например 4 декабря 2008г, то 4.12.2008

Vadim Zhunko
5227
Vadim Zhunko 2008.12.25 23:49  
kombat >>:

нет...

если например 4 декабря 2008г, то 4.12.2008

Надо добавлять. Или сделать в функции переключатель режимов. С добавлением нулей и без добавления нулей.

Vadim Zhunko
5227
Vadim Zhunko 2008.12.25 23:52  

Вот ещё придумал.

Надо, чтобы эта функция при каждом вызове вычисляла праздники, дни рождения и автоматически рассылала SMS с поздравлениями.

kombat
3276
kombat 2008.12.26 00:04  

Вариант добавления нулей...

string DateRev(datetime d)
{
string lzd="", lzm="";
if(TimeDay(d)  <10) lzd="0";
if(TimeMonth(d)<10) lzm="0";
string date=lzd+TimeDay(d)+"."+lzm+TimeMonth(d)+"."+TimeYear(d);
return(date);
}
//---
string DateRevLocal()
{
datetime d=TimeLocal();
string lzd="", lzm="";
if(TimeDay(d)  <10) lzd="0";
if(TimeMonth(d)<10) lzm="0";
string date=lzd+TimeDay(d)+"."+lzm+TimeMonth(d)+"."+TimeYear(d);
return(date);
}
//---
string DateRevCurrent()
{
datetime d=TimeCurrent();
string lzd="", lzm="";
if(TimeDay(d)  <10) lzd="0";
if(TimeMonth(d)<10) lzm="0";
string date=lzd+TimeDay(d)+"."+lzm+TimeMonth(d)+"."+TimeYear(d);
return(date);
}

granit77

спасибо что обратил на это внимание...!

;)))

Виктор
Модератор
6559
Виктор 2008.12.26 08:25  
kombat >>:

Вариант добавления нулей...

Ты еще какие-то варианты пишешь, а я уже вообще думать перестал. В Кунгуре все уже есть готовое.

//+------------------------------------------------------------------+
//| script "Demonstration time" KimIV style                          |
//+------------------------------------------------------------------+
int start()
  {
   string TimeCur;
//----
   TimeCur=
   ALZ(DoubleToStr(TimeDay   (TimeCurrent()),0),2)
   +"."+ 
   ALZ(DoubleToStr(TimeMonth (TimeCurrent()),0),2)
   +"."+
   ALZ(DoubleToStr(TimeYear  (TimeCurrent()),0),4)
   +" "+ 
   ALZ(DoubleToStr(TimeHour  (TimeCurrent()),0),2)
   +"."+ 
   ALZ(DoubleToStr(TimeMinute(TimeCurrent()),0),2); 
   
   Comment( "Текущее время в полном формате:  ", TimeCur);
//----
   return(0);
  }
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 01.09.2005                                                     |
//|  Описание : Добавляет к строке S столько лидирующих нулей "0",             |
//|           : чтобы длина строки S стала равна K.                            |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    s - строка                                                              |
//|    k - длина строки S                                                      |
//+----------------------------------------------------------------------------+
//string AddLeadingZero(string s, int k) {
//название сокращено до ALZ() для простоты использования
string ALZ(string s, int k) {
  while(StringLen(s)<k) s=StringConcatenate("0", s);
  return(s);
}
kombat
3276
kombat 2008.12.26 08:36  
granit77 писал(а) >>

Ты еще какие-то варианты пишешь, а я уже вообще думать перестал. В Кунгуре все уже есть готовое.

Нууу... не всё же время на шее Игоря сидеть то...

:)))))))))))))))))))

хоть чёнить и своего наваять надоть...

(или навалять... ;))))))))))))))))))))))))

*

А вообче бы разработчикам ввести бы штатную функцию

по аналогии TimeToStr() например TimeToStrRev()

которая и выводила как надо...

12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий