алгоритм преобразования даты и времени в целое число (разработчикам вопрос)

 

Я немного не разработчик...

Но в МТ4 используется Unix timestamp.

.

Перевод в FILETIME:

    inline
        LowHigh WinToUnix(Utils::LowHigh & win)
    {
        //How to convert Windows NT Time to UNIX Time:
        //Divide by 10,000,000 and subtract 11,644,473,600.
        LowHigh res = win.i64 / 10000000 - 11644473600;
        return res;
    }

    inline
        LowHigh UnixToWin(Utils::LowHigh & unix)
    {
        //How to convert UNIX Time to Windows NT Time:
        //Add 11,644,473,600 and multiply by 10,000,000
        LowHigh res = (unix.i64 + 11644473600) * 10000000;
        return res;
    }

Ну и дальше

перевод в SYSTEMTIME.
    inline 
        SYSTEMTIME FtToSt(const FILETIME &ft)
    {
        SYSTEMTIME st = {0};
        int nResult = ::FileTimeToSystemTime(&ft, &st);
        if(nResult == 0)
        {
            throw CUtilsError(GetLastErrorHr());
        }
        return st;
    }
 
HideYourRichess >>:

Пожалуйста, опубликуйте алгоритм преобразования данных дата и время в int.


Ну, или ссылку дайте, на первоисточник.

https://docs.mql4.com/ru/dateandtime

Собсно, алгоритм таков:

datetime time = TimeCurrent();
int intTime = time;
Или я чего-то не понял?
 
jartmailru >>:

Я немного не разработчик...

Но в МТ4 используется Unix timestamp.

.

Перевод в FILETIME:


Ну и дальше

перевод в SYSTEMTIME.


Это точно установлено?

 
TheXpert >>:

https://docs.mql4.com/ru/dateandtime

Собсно, алгоритм таков:

Или я чего-то не понял?

Есть дата и время, записаны как год.месяц.день.час.минуты.секунды, это всё в мт преобразуется в количество секунд начиная с определенной даты.

Собственно в этом и вопрос, как именно происходит преобразование.


Мне нужно повторить этот алгоритм, но уже в dll. Я конечно могу выцепить функции преобразования из дампа, но сильно не хочется это делать.

 
HideYourRichess >>:

Есть дата и время, записаны как год.месяц.день.час.минуты.секунды, это всё в мт преобразуется в количество секунд начиная с определенной даты.

Собственно в этом и вопрос, как именно происходит преобразование.

А собственно зачем, есть тип datetime и есть тип int также в мкл4 имеються функции перевода из одного в другой.

Поясните для чего это нужно, может в самой задаче лежит способ решения?

 
HideYourRichess писал(а) >>

Есть дата и время, записаны как год.месяц.день.час.минуты.секунды, это всё в мт преобразуется в количество секунд начиная с определенной даты.

Собственно в этом и вопрос, как именно происходит преобразование.

Мне нужно повторить этот алгоритм, но уже в dll. Я конечно могу выцепить функции преобразования из дампа, но сильно не хочется это делать.

Время берется именно из МТ, поэтому, почему не делать преобразования именно в МТ?

 
vasya_vasya >>:

Время берется именно из МТ, поэтому, почему не делать преобразования именно в МТ?

Я уже объяснил, мне нужно решить точно такую же задачу, но за пределами мт. Не спрашивайте зачем - надо.

 
Urain >>:

А собственно зачем, есть тип datetime и есть тип int также в мкл4 имеються функции перевода из одного в другой.

Поясните для чего это нужно, может в самой задаче лежит способ решения?

Нет, вы не поняли. Нужен алгоритм который преобразует D'1980.07.19 12:30:27' в int. Сам алгоритм.

 
HideYourRichess >>:

Нет, вы не поняли. Нужен алгоритм который преобразует D'1980.07.19 12:30:27' в int. Сам алгоритм.

Я то понял, но я не разработчик и единственно чем вам могу помочь это подержать тему в топе своими наводящими (может и глупыми) вопросами.

Вообще конечно знать алгоритм формирования чего либо никогда не вредно, даже если прямо сейчас не нужно то может сгодиться потом.

 
А. Хорошо раз так.