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

Вычесть 3 часа из даты, заданной в формате string - C++

Восстановить пароль Регистрация
 
pav1uxa
1709 / 1549 / 599
Регистрация: 23.01.2014
Сообщений: 5,596
Завершенные тесты: 1
13.02.2014, 00:34     Вычесть 3 часа из даты, заданной в формате string #1
Есть, например
C++
1
2
string mydate = "01.01.13";
string mytime = "02:14:26";
Как вычесть из этой даты 3 часа, с учетом переноса дня\месяца\года, с учетом количества дней в месяце\годе и записать результат назад в формате string?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.02.2014, 00:34     Вычесть 3 часа из даты, заданной в формате string
Посмотрите здесь:

C++ Перевод массива char в std::string в определенном формате
C++ Одноклеточная амеба каждые 3 часа делится на 2 клетки. Определить, сколько амеб будет через 3, 6, 9, 12, ... , 24 часа ?
C++ Как из даты вычесть дату?
C++ Дан строковый файл, содержащий даты в формате
C++ Преобразование типов string->double c заданной точностью*?
C++ Написать программу, которая вводит две даты в формате «дд.мм.гг»
Создать класс Date, который может выводить даты в формате DD YYYY и MM/DD/YY C++
C++ Проверить корректность заданной даты

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
 Аватар для DiffEreD
1420 / 757 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
13.02.2014, 19:47     Вычесть 3 часа из даты, заданной в формате string #2
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Ну, как то так (если boost не страшен):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include <iostream>
#include <string>
#include <vector>
#include <boost/date_time/posix_time/posix_time.hpp>
#include <boost/algorithm/string.hpp>
 
//самописный костыль
std::string to_non_delimited_iso_form(const std::string& str)
{
   std::vector<std::string> temp;
   boost::algorithm::split(temp, str, boost::algorithm::is_any_of(".: "));
   assert(temp.size() == 6);
   return "20" + temp[2] + temp[0] + temp[1] + "T" + temp[3]+ temp[4]+ temp[5];
}
 
int main()
{
   using namespace boost::posix_time;
 
   std::string mydate = "01.01.13";
   std::string mytime = "02:14:26";
 
   ptime pt = from_iso_string(to_non_delimited_iso_form(mydate + " " + mytime));
   std::cout << "Date:           -> " << pt << "\n";
   pt -= hours(3);
   std::cout << "Date - 3 hours: -> " << pt << "\n";
 
   return 0;
}
Yandex
Объявления
13.02.2014, 19:47     Вычесть 3 часа из даты, заданной в формате string
Ответ Создать тему
Опции темы

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