С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 14.12.2016
Сообщений: 14
1

Определить сколько секунд осталось до времени2

14.12.2016, 19:38. Показов 1261. Ответов 7

Author24 — интернет-сервис помощи студентам
Дано время1,записанное в виде ЧЧ:ММ:СС , определить сколько секунд осталось до времени2,записанного в виде ЧЧ:ММ:СС.Если не сложно поясните пожалуйста,какая команда за что отвечает
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
14.12.2016, 19:38
Ответы с готовыми решениями:

Посчитать, сколько часов, минут и секунд осталось до полуночи.
Условие задачи: Пользователь вводит с клавиатуры время в секундах, прошедшее с начала дня. Вывести...

Определить сколько дней осталось до конца месяца
Даны день, месяц и год. Вывести дату в виде «23 мая 1978 года.». Определить сколько дней осталось...

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

Определить сколько секунд прошло между двумя моментами времени
Даны значения двух моментов времени, принадлежащих одним и тем же суткам: часы, потом минуты и...

7
Эксперт С++
1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
14.12.2016, 19:40 2
11-й стандарт использовать можно?

Не по теме:

вангую хроноса из 11-го стандарта))

0
0 / 0 / 0
Регистрация: 14.12.2016
Сообщений: 14
14.12.2016, 19:43  [ТС] 3
Честно сказать я не знаю,ибо вообще в этом не разобрался ещё,но запретов вроде никаких нет.
0
Эксперт С++
1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
14.12.2016, 20:07 4
тогда как вариант:

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
#include <chrono>
#include <ctime>
#include <iomanip>
#include <iostream>
 
struct Tm : std::tm {
  int tm_usecs; // [0, 999999] micros after the sec
 
  Tm(const int year, const int month, const int mday, const int hour,
     const int min, const int sec, const int usecs, const int isDST = -1)
      : tm_usecs{usecs} {
    tm_year = year - 1900; // [0, 60] since 1900
    tm_mon = month - 1;    // [0, 11] since Jan
    tm_mday = mday;        // [1, 31]
    tm_hour = hour;        // [0, 23] since midnight
    tm_min = min;          // [0, 59] after the hour
    tm_sec = sec;          // [0, 60] after the min
                           //         allows for 1 positive leap second
    tm_isdst = isDST;      // [-1...] -1 for unknown, 0 for not DST,
                           //         any positive value if DST.
  }
 
  template <typename Clock_t = std::chrono::high_resolution_clock,
            typename MicroSecond_t = std::chrono::microseconds>
  auto to_time_point() -> typename Clock_t::time_point {
    auto time_c = mktime(this);
    return Clock_t::from_time_t(time_c) + MicroSecond_t{tm_usecs};
  }
};
 
void split(const std::string &s, char delim, std::vector<std::string> &elems) {
    std::stringstream ss;
    ss.str(s);
    std::string item;
    while (std::getline(ss, item, delim)) {
        elems.push_back(item);
    }
}
 
 
std::vector<std::string> split(const std::string &s, char delim) {
    std::vector<std::string> elems;
    split(s, delim, elems);
    return elems;
}
 
void init(string str, int *h, int *m, int *s)
{
  std::vector<std::string> times = split(str, ":");
  for (int i = 0; i < times.length(); i++)
  {
      int value = std::stoi(times[i]);
      switch(i) {
        case 0: *h = value; break;
        case 1: *m = value; break;
        vase 2: *s = value; break;
        default: break;
     }
  }
}
 
int main() {
  using namespace std::chrono;
 
  string time1;
  cin >> time1;
 
  int h1 = 0;
  int m1 = 0;
  int s1 = 0;
  init (time1, &h1, &m1, &s1);
  
 
  string time2;
  cin >> time2;
 
  int h2 = 0;
  int m2 = 0;
  int s2 = 0;
  init (time2, &h2, &m2, &s2);
  
 
  auto tp_nomicro = Tm(2016, 12, 14, h1, m1, s1, 0).to_time_point();
  auto tp_micro = Tm(2016, 12, 14, h2, m2, s2, 0).to_time_point();
  std::cout << duration_cast<microseconds>(tp_micro - tp_nomicro).count()
            << " microseconds apart.\n";
 
  auto time_c = high_resolution_clock::to_time_t(tp_micro);
  std::cout << std::ctime(&time_c) << '\n';
}
1
0 / 0 / 0
Регистрация: 14.12.2016
Сообщений: 14
14.12.2016, 20:25  [ТС] 5
Огоо,спасиибо сейчас попробую.Надо бы теперь во всех этих кодах разобраться.

Добавлено через 10 минут
А можно код попроще,на базе начальных знаний C++ (этого нам не давалось)?
0
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
14.12.2016, 20:43 6
Maxim Prishchepa,
Цитата Сообщение от Maxim Prishchepa Посмотреть сообщение
std::vector<std::string> times = split(str, ":");
* for (int i = 0; i < times.length(); i++)
А у вектора разве не size() ? С length() по-моему не должно работать

Добавлено через 12 минут
Maxim Prishchepa, + там ещё в секундах надо. С вашего позволения подкорректирую немного
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <chrono>
#include <ctime>
#include <iomanip>
#include <iostream>
#include <vector>
#include <string>
struct Tm : std::tm {
    int tm_usecs; // [0, 999999] micros after the sec
 
    Tm(const int year, const int month, const int mday, const int hour,
       const int min, const int sec, const int usecs, const int isDST = -1)
        : tm_usecs {usecs} {
        tm_year = year - 1900; // [0, 60] since 1900
        tm_mon = month - 1;    // [0, 11] since Jan
        tm_mday = mday;        // [1, 31]
        tm_hour = hour;        // [0, 23] since midnight
        tm_min = min;          // [0, 59] after the hour
        tm_sec = sec;          // [0, 60] after the min
        //         allows for 1 positive leap second
        tm_isdst = isDST;      // [-1...] -1 for unknown, 0 for not DST,
        //         any positive value if DST.
    }
 
    template <typename Clock_t = std::chrono::high_resolution_clock,
             typename MicroSecond_t = std::chrono::microseconds>
    decltype(auto) to_time_point() {
        auto time_c = mktime(this);
        return Clock_t::from_time_t(time_c) + MicroSecond_t {tm_usecs};
    }
};
 
void split(const std::string &s, char delim, std::vector<std::string> &elems) {
    std::stringstream ss;
    ss.str(s);
    std::string item;
    while (std::getline(ss, item, delim)) {
        elems.push_back(item);
    }
}
 
 
std::vector<std::string> split(const std::string &s, char delim) {
    std::vector<std::string> elems;
    split(s, delim, elems);
    return elems;
}
 
void init(std::string str, int *h, int *m, int *s) {
    std::vector<std::string> times = split(str,':');
    for (int i = 0; i < times.size(); i++) {
        int value = std::stoi(times[i]);
        switch(i) {
            case 0:
                *h = value;
                break;
            case 1:
                *m = value;
                break;
            case 2:
                *s = value;
                break;
            default:
                break;
        }
    }
}
 
int main() {
    using namespace std::chrono;
    std::string time1;
    std::cin >> time1;
    int h1 = 0;
    int m1 = 0;
    int s1 = 0;
    init (time1, &h1, &m1, &s1);
    std::string time2;
    std::cin >> time2;
    int h2 = 0;
    int m2 = 0;
    int s2 = 0;
    init (time2, &h2, &m2, &s2);
    auto tp_nomicro = Tm(2016, 12, 14, h1, m1, s1, 0).to_time_point();
    auto tp_micro = Tm(2016, 12, 14, h2, m2, s2, 0).to_time_point();
    std::cout << duration_cast<seconds>(tp_micro - tp_nomicro).count()
              << " seconds apart.\n";
    auto time_c = high_resolution_clock::to_time_t(tp_micro);
    std::cout << std::ctime(&time_c) << '\n';
}
0
0 / 0 / 0
Регистрация: 14.12.2016
Сообщений: 14
14.12.2016, 20:50  [ТС] 7
Задание должно выполняться на С++,а не на С++11,пожалуйста.Максимально просто,будьте добры.
0
Эксперт С++
1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
15.12.2016, 12:10 8
Цитата Сообщение от Peoples Посмотреть сообщение
С вашего позволения подкорректирую немного
пожалуйста пожалуйста.... я прям на форуме писал, да же не пробовал, собирается или нет
0
15.12.2016, 12:10
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.12.2016, 12:10
Помогаю со студенческими работами здесь

Сколько же мне осталось
Доброго времени суток. Хочу узнать как можно реализовать на C++ Builder и с помощью компонентов...

Сколько дней осталось до dd.mm.yy
Написать программу,которая определяет,сколько дней осталось до определенной даты(вводится с...

Выяснить, сколько бюллетеней осталось необработанными
В стране Виртландии раз в пять лет проходят выборы президента. И каждый раз после завершения...

Сколько дней осталось до конца года?
Написать програму которая спрашивает у пользователя дату в формате ДД ММ ГГГГ и вычисляет сколько...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
Как написать микросервис на Go/Golang с Kafka и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
Как написать микросервис с нуля на C# с RabbitMQ, CQRS и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
Как создать игру "Танчики" на Unity3d и C#
InfoMaster 14.01.2025
Разработка игр – это увлекательный процесс, сочетающий в себе творчество и технические навыки. В этой статье мы рассмотрим создание классической игры "Танчики" с использованием Unity3D и языка. . .
Организую платный онлайн микро-курс по доработке Android-клиента Telegram
_Ivana 14.01.2025
Официальная версия и распространенные форки не полностью устраивают? Сделай свою кастомную версию клиента! 4 занятия по 2 часа (2 недели пн, ср 19:00-21:00 по Москве). Первое вводное занятие. . .
Как создать приложение для фитнеса для iOS/iPhone на Kotlin
InfoMaster 14.01.2025
Создание собственного фитнес-приложения — это не только захватывающий, но и полезный процесс, ведь оно может стать вашим верным помощником на пути к здоровому и активному образу жизни. В современных. . .
Как создать приложение магазина для iOS/iPhone на Swift
InfoMaster 14.01.2025
Введение в разработку iOS-приложений Разработка приложений для iPhone и других устройств на базе iOS открывает огромные возможности для создания инновационных мобильных решений. В данной статье мы. . .
Это работает. Скорость асинхронной логики велика. Вопрос видимо останется в стабильности. Плата - огонь!
Hrethgir 13.01.2025
По прошлому проекту в Logisim Evolution https:/ / www. cyberforum. ru/ blogs/ 223907/ blog8781. html прилагаю файл архива проекта в Gowin Eda. Восьмибитный счётчик из сумматора+ генератор сигнала. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru