Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/25: Рейтинг темы: голосов - 25, средняя оценка - 4.60
5 / 4 / 4
Регистрация: 08.07.2014
Сообщений: 38

Преобразование double во время (char) год, месяц, день, часы секунды, минуты

28.11.2016, 21:33. Показов 5264. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, форумчане. Подскажите как получить текущее время, сохранить его в double, а потом преобразовать скажем в строку char*. Есть много разных решений и библиотек. Есть ли решение универсальное для Windows и Unix.
У меня есть метод класса createLog, один из параметров time типа double хочу туда передать текущее время, а потом мне надо эту структуру записать в файл, но время time нужно записать в читабельно форме, месяц, год, день недели, часы, мин, сек. Как time преобразовать в строку вручную, не используя библиотеки.

C++
1
2
3
4
5
6
7
 struct inf
        {
             double time;        //* время, 
             int layer;          //* уровень
             int number_string;  //* номер строки,
             char file_name[24]; //* имя файла, 
        };
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void CLogger::createLog(const char* file_name, \
                                int len_fname, \
                             double time,      \
                                int layer,     \
                                int num_str,   \
                        const char* msg,       \
                                int len_msg)
{   
    inf dop_log;
    strcpy (dop_log.file_name,file_name);
    dop_log.layer = layer;
    dop_log.number_string = num_str;
    dop_log.time = time;
    addLog(dop_log,msg, len_msg);
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.11.2016, 21:33
Ответы с готовыми решениями:

Определить текущий день недели, год, месяц, число, а также текущее время-часы, минуты, секунды, сотые доли секунды.
1. Составить программу на языке Си , используя функций прерывания 21h. Определить текущий день недели, год, месяц, число, а также текущее...

как получить unix из строки (день, месяц, год, часы, минуты)
получаю unix: unix =int(time.time()) из unix получаю дату в виде строки: str_date = time.strftime('%Y-%m-%d %H:%M:%S',...

Установить часы, минуты, секунды, год Javascript
Установить часы, минуты, секунды, год Javascript на html. Помогите плиз. Никак не могу додуматься Нужно сделать так что бы при вводе...

9
277 / 226 / 93
Регистрация: 27.06.2016
Сообщений: 639
28.11.2016, 21:36
DmitryBond, почему именно double? Чем целочисленное не устраивает?
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
28.11.2016, 21:41
Цитата Сообщение от DmitryBond Посмотреть сообщение
C++
1
2
3
4
5
6
7
void CLogger::createLog(const char* file_name, \ // <---
* * * * * * * * * * * * * * * * int len_fname, \ // <---
* * * * * * * * * * * * * * *double time, * * *\ // <---
* * * * * * * * * * * * * * * * int layer, * * \ // <---
* * * * * * * * * * * * * * * * int num_str, * \ // <---
* * * * * * * * * * * * const char* msg, * * * \ // <---
* * * * * * * * * * * * * * * * int len_msg)
Это не макрос, С++ допускает многострочные объявления.
0
5 / 4 / 4
Регистрация: 08.07.2014
Сообщений: 38
28.11.2016, 21:48  [ТС]
alex white, потому что принято хранить в double , до запятой год, месяц, день, после час, мин, сек.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
28.11.2016, 22:06
Где так принято? Там может точность пострадать.
0
5 / 4 / 4
Регистрация: 08.07.2014
Сообщений: 38
28.11.2016, 22:33  [ТС]
так хранится время, количество секунд прошедшее с 1 января 1970 года этот формат принят в системе Unix. Я не хочу эту тему больше обсуждать. Есть задача тип хранения предложенный мной double. Это не суть проблемы, нужно текущее время передать в функцию хранить в структуре, а потом писать в файл. Я задачу эту решал на C# там есть замечательный компонент, позволяет обрабатывать этот формат данных double, решал при помощи библиотек qt. Есть удобная структура time_t в time.h, но это для Unix, позволяет сохранять и передавать в строку. нужно универсальное решения для windows и Unix, вот решение в Unix

C++
1
2
3
    time_t seconds = time(NULL);
    tm* timeinfo = localtime(&seconds);
    cout<<"Current Datetime:"<<asctime(timeinfo)<<endl;
asctime возвращает char*
Вывод;
Current Datetime:Mon Nov 28 21:44:30 2016
0
Любитель чаепитий
 Аватар для GbaLog-
3745 / 1801 / 566
Регистрация: 24.08.2014
Сообщений: 6,020
Записей в блоге: 1
28.11.2016, 22:47
Лучший ответ Сообщение было отмечено DmitryBond как решение

Решение

Цитата Сообщение от DmitryBond Посмотреть сообщение
вот решение в Unix
Вы не поверите, но это кроссплатформенное решение.
Эти функции и структуры входят в стандарт языка С++.
http://en.cppreference.com/w/cpp/chrono/c/asctime
http://en.cppreference.com/w/c... /localtime
http://en.cppreference.com/w/cpp/chrono/c/time_t
http://en.cppreference.com/w/cpp/chrono/c/tm
1
5 / 4 / 4
Регистрация: 08.07.2014
Сообщений: 38
28.11.2016, 22:54  [ТС]
GbaLog- , честно говоря у нас один умник на работе утверждал, что time_t это решение используется только в Unix, спасибо это решает проблему. Я сейчас попробую.
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
28.11.2016, 23:11
Цитата Сообщение от DmitryBond Посмотреть сообщение
этот формат принят в системе Unix... Я не хочу эту тему больше обсуждать... Это не суть проблемы
Серьёзно? Где это там double используется? Если бы ты знал в чём суть, то такую ерунду не писал бы.
0
5 / 4 / 4
Регистрация: 08.07.2014
Сообщений: 38
29.11.2016, 00:02  [ТС]
Уважаемый nmcf, я не буду обсуждать всякие глупости, double не используется, я не это имел ввиду, я хотел использовать double , как вариант для хранения времени, читайте внимательно и желательно сначала. Если у вас нет предложений по решению то не стоит загаживать эту тему комментариями, они никому не интересны. Если я был не точен можно сказать об этом, если вы знаете в чём суть можете здесь рассказать.
Есть замечательное правило. если критикуешь, то предлагаешь. Используйте вам пригодится в будущем.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.11.2016, 00:02
Помогаю со студенческими работами здесь

Преобразование миллесукенд в секунды, минуты, часы
Здравствуйте! Подскажите пожалуйста, что это может быть, когда я запуская этот код в эмуляторе, то отображается правильное время, а когда я...

Время. Дано количество секунд. Вычислить время в формате часы/минуты/секунды.
Написать программу, которая требует от пользователя ввести к- секунду и чтобы программа считала сколько полных часов и минут прошло с...

Преобразование показателя количества минут в часы, минуты, секунды
Добрый день! Подскажите пожалуйста, как перевести правильно сумму минут ( в формате числа) в формат hh:nn:ss Понимаю, вопрос банальный,...

Пользователь вводит с клавиатуры время начала и время завершения телефонного разговора (часы, минуты и секунды)
Посчитать стоимость разговора, если стоимость минуты – 30 копеек (важно: выполнить с использованием цикла)

Дано время (часы, минуты, секунды)-три натуральных числа. Определить время через 10 секунд
Дано время (часы, минуты, секунды)-три натуральных числа. Определить время через 10 секунд.


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru