Форум программистов, компьютерный форум CyberForum.ru

Перевести текущую дату в определенный формат - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
Серый_Ветер
 Аватар для Серый_Ветер
2 / 2 / 1
Регистрация: 09.01.2013
Сообщений: 124
09.01.2013, 11:08     Перевести текущую дату в определенный формат #1
помогите написать алгоритм:
надо забрать системную дату с компутера и перевести ее в hex таким образом:
Код
DD 07 01 00 03 00 08
где DD 07 - это 07DD - год 2013, записанный в обратном порядке
01 - месяц - январь
08 - день, 9е число. расчитывается как "количество дней, которое надо прибавить к первому числу месяца"

к примеру вот:
DD 07 04 00 03 00 14 это 21.04.2013 или DD 07 09 00 03 00 1E это 1.10.2013
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.01.2013, 11:08     Перевести текущую дату в определенный формат
Посмотрите здесь:

C++ Вывести текущую дату и время
Перевести дату C++
можно ли сделать так, чтобы я ввел определенную команду и программа по ней воспроизводила определенный mp3 (или другой формат) файл? C++
Строки и функции пользователя. Преобразовать заданную пользователем дату в формате «дд.мм.гг» в формат «месяц дд, год» C++
Строки с Чаром (преобразовать заданную пользователем дату в формате «дд.мм.гг» в формат «месяц дд, год») C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
 Аватар для vxg
2663 / 1674 / 157
Регистрация: 13.01.2012
Сообщений: 6,251
09.01.2013, 13:28     Перевести текущую дату в определенный формат #2
C++
1
printf("%02X%02X" "%02X00" "%02X00" "%02X", year % 256, year / 256, month, day - 1);
не ясно только что у вас за цифра 03)
Серый_Ветер
 Аватар для Серый_Ветер
2 / 2 / 1
Регистрация: 09.01.2013
Сообщений: 124
09.01.2013, 14:17  [ТС]     Перевести текущую дату в определенный формат #3
это никому не понятно, зачем 00 03 00 возможно это обозначение григорианского календаря, но как не меняй ни на что влияет...
то что нужно это 00 01 02 03 04 05 06
остальное не используется.

то есть этот код:
C++
1
printf("%02X%02X" "%02X00" "%02X00" "%02X", year % 256, year / 256, month, day - 1);
будет представлять дату как 00 01 02 03 04 05 06
или он просто кодирует дату?
vxg
Модератор
 Аватар для vxg
2663 / 1674 / 157
Регистрация: 13.01.2012
Сообщений: 6,251
09.01.2013, 14:53     Перевести текущую дату в определенный формат #4
этот код выбрасывает на экран консоли строку похожую на то что вы написали. похожую потому как не понял я что там за 03. возможно 03 это день недели
Серый_Ветер
 Аватар для Серый_Ветер
2 / 2 / 1
Регистрация: 09.01.2013
Сообщений: 124
09.01.2013, 15:43  [ТС]     Перевести текущую дату в определенный формат #5
нет. день недели не тут задается.
vxg
Модератор
 Аватар для vxg
2663 / 1674 / 157
Регистрация: 13.01.2012
Сообщений: 6,251
09.01.2013, 15:56     Перевести текущую дату в определенный формат #6
Цитата Сообщение от Серый_Ветер Посмотреть сообщение
день недели не тут задается
вам виднее. вы не смотрите что там 3 написано. может это не наша система. может отсчет от вс идет
Серый_Ветер
 Аватар для Серый_Ветер
2 / 2 / 1
Регистрация: 09.01.2013
Сообщений: 124
09.01.2013, 15:58  [ТС]     Перевести текущую дату в определенный формат #7
хм..
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
123.cpp:
Error E2451 123.cpp 9: Undefined symbol 'year' in function main()
Error E2451 123.cpp 9: Undefined symbol 'month' in function main()
Error E2451 123.cpp 9: Undefined symbol 'day' in function main()
*** 3 errors in Compile ***
а можно код?

уже сто лет не работал в нем...
оказывается забыл
vxg
Модератор
 Аватар для vxg
2663 / 1674 / 157
Регистрация: 13.01.2012
Сообщений: 6,251
09.01.2013, 16:14     Перевести текущую дату в определенный формат #8
в year month day вы должны поместить дату. как вы это сделаете я не указываю. можно например так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//---------------------------------------------------------------------------
 
#include <vcl.h>
#pragma hdrstop
 
#include <stdio.h>
//---------------------------------------------------------------------------
 
#pragma argsused
int main(int argc, char* argv[])
{
    SYSTEMTIME st;
    GetSystemTime(&st);
 
    printf("%02X%02X" "%02X" "%02X" "\n", st.wYear % 256, st.wYear / 256, st.wMonth, st.wDay - 1);
 
    system("pause");
    return 0;
}
//---------------------------------------------------------------------------
Серый_Ветер
 Аватар для Серый_Ветер
2 / 2 / 1
Регистрация: 09.01.2013
Сообщений: 124
09.01.2013, 16:22  [ТС]     Перевести текущую дату в определенный формат #9
не могу сделать никак...

таки потерял навык... уже почти 2,5 года не писал ничего закончилась учеба, началась работа )

требуется вот это:

имеем файл:
OSV_10009U.nbf
в нем по адресу 0x001276d2 нужно заменить или вставить(как правильно, хз) следующие 7 значений(00 01 02 03 04 05 06) на то что сгенерирует команда выше....
и затем запустить install.exe

Добавлено через 6 минут
что то даже код выше... не работает. компилятор вылетает, говоря что не моет найти файло...
уже все папки переместил на C: и все равно.
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
123.cpp:
Error E2209 123.cpp 1: Unable to open include file 'vcl.h'
Error E2451 123.cpp 10: Undefined symbol 'SYSTEMTIME' in function main(int,char * *)
Error E2379 123.cpp 10: Statement missing ; in function main(int,char * *)
Error E2268 123.cpp 11: Call to undefined function 'GetSystemTime' in function main(int,char * *)
Error E2451 123.cpp 11: Undefined symbol 'st' in function main(int,char * *)
Error E2268 123.cpp 15: Call to undefined function 'system' in function main(int,char * *)
*** 6 errors in Compile ***
vxg
Модератор
 Аватар для vxg
2663 / 1674 / 157
Регистрация: 13.01.2012
Сообщений: 6,251
09.01.2013, 16:39     Перевести текущую дату в определенный формат #10
vcl - это я в билдере просто собираю. вы можете не включать этот файл.
Цитата Сообщение от Серый_Ветер Посмотреть сообщение
и затем запустить install.exe
ай ай ай ломать программы нехорошо.
Серый_Ветер
 Аватар для Серый_Ветер
2 / 2 / 1
Регистрация: 09.01.2013
Сообщений: 124
09.01.2013, 16:43  [ТС]     Перевести текущую дату в определенный формат #11
программа моя

вернее это прошивка от моего кпк...
а install.exe это прошивальщик... мне его ломать не нужно

OSV_10009U.nbf - 2003 винда под кпк, она уже даже мелкософту не нужна
vcl - это я в билдере просто собираю. вы можете не включать этот файл.
про vcl уже пробил. его у меня даже в билдере нету.
вот что сейчас пишет:
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
123.cpp:
Error E2451 123.cpp 10: Undefined symbol 'SYSTEMTIME' in function main(int,char * *)
Error E2379 123.cpp 10: Statement missing ; in function main(int,char * *)
Error E2268 123.cpp 11: Call to undefined function 'GetSystemTime' in function main(int,char * *)
Error E2451 123.cpp 11: Undefined symbol 'st' in function main(int,char * *)
Error E2268 123.cpp 15: Call to undefined function 'system' in function main(int,char * *)
*** 5 errors in Compile ***
vxg
Модератор
 Аватар для vxg
2663 / 1674 / 157
Регистрация: 13.01.2012
Сообщений: 6,251
09.01.2013, 21:03     Перевести текущую дату в определенный формат #12
мб
C++
1
#include <windows.h>
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.01.2013, 21:43     Перевести текущую дату в определенный формат
Еще ссылки по теме:

C++ Текущую дату сравнить с заданной датой
C++ Создать функцию, которая принимает на вход дат рождения и текущую дату и вычисляет кол-во дней до дня рождения
C++ Разработать (и применить) для классов A и B дружественную функцию, позволяющую определять текущую дату и время

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Серый_Ветер
 Аватар для Серый_Ветер
2 / 2 / 1
Регистрация: 09.01.2013
Сообщений: 124
09.01.2013, 21:43  [ТС]     Перевести текущую дату в определенный формат #13
C++
1
2
3
4
5
6
7
8
9
10
int main(int argc, char* argv[])
{
    SYSTEMTIME st;
    GetSystemTime(&st);
 
    printf("%02X%02X" "%02X" "000300" "%02X" "\n", st.wYear % 256, st.wYear / 256, st.wMonth, st.wDay - 1);
 
    system("pause");
    return 0;
};
вот так вот отдает то что нужно...
буду дальше гадать что и как сделать
Yandex
Объявления
09.01.2013, 21:43     Перевести текущую дату в определенный формат
Ответ Создать тему
Опции темы

Текущее время: 19:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru