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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
AkA_ZadR
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 8
#1

Время - C++

07.03.2012, 15:55. Просмотров 400. Ответов 8
Метки нет (Все метки)

Даётся часы и минуты к примеру 12ч 00м и нам надо их перевести на 30 минут назад тоесть будет 11 30
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.03.2012, 15:55     Время
Посмотрите здесь:

Суммарное время ожидания покупателей (общее время простоя в очереди) в магазине - GPSS
Задача: Время между последовательными прибытиями покупателей в магазин равномерно распределяется на интервале от 1 до 20 минут. Для 50%...

Как переконвертировать время из unix epoch формата в понятную дату и время? - C Linux
Уважаемые форумчане! Не могу нигде найти адекватного решения обратной конвертации из формата unix epoch в человекочитабельную форму! Есть...

компьютер вырубается во время игр каждый раз через разное время. - Компьютерное железо
помогите пожалуйста* компьютер Acer aspire m3201. * ** ** * Тип ЦП* ** ** ** ** ** ** ** ** ** ** ** ** ** ** TripleCore AMD Phenom X3...

График количество-время, где время разбито в несколько полей - Delphi БД
Собсна, есть таблица с полями: День; Час; Минута; Количество; Все числовые. Есть DBChart. Задача заключается в том, чтобы...

Вычислить время простоя в рабочее время - MS Excel
Мне нужно узнать сколько времени простоя занимает в раб. время(только будни) с 8:30-17:30 если: дата начала простоя 01.01.2017...

Как разделить колонку с форматом Дата/время на две - Дата и время - MS Access
Здравствуйте. Подскажите пожалуйста, как разделить колонку с форматом Дата/время на две - Дата и время Задача выглядит следующим...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
07.03.2012, 16:02     Время #2
Ну можно boost::gregorian заюзать.
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
07.03.2012, 16:05     Время #3
AkA_ZadR, в системе перевести чтоль? Хотелось бы больше конкретики.
-=ЮрА=-
Заблокирован
Автор FAQ
07.03.2012, 16:09     Время #4
Цитата Сообщение от AkA_ZadR Посмотреть сообщение
Даётся часы и минуты к примеру 12ч 00м и нам надо их перевести на 30 минут назад тоесть будет 11 30
- вот очень на С++
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
#include <iostream>
#include <iomanip>
using namespace std;
 
int main()
{
    int clocks;
    int hours;
    int minutes;
    int differece;
    while(true)
    {
        cout<<"Chasi : ";cin>>hours;
        cout<<"Minuti: ";cin>>minutes;
        cout<<"Vvedeno vremya: "<<hours<<" : "
            <<minutes<<endl;
        clocks = hours*60 + minutes;
        cout<<"Perevisti chasi v minutah : ";
        cin>>differece;
        clocks -= differece;
        hours   = clocks/60;
        minutes = clocks%60;
        cout<<setw(2)<<"Novoe vremya : "<<hours<<" : "
            <<setw(2)<<minutes<<endl;
    }
    return 0;
}
Миниатюры
Время  
easybudda
Эксперт CЭксперт С++
9468 / 5481 / 927
Регистрация: 25.07.2009
Сообщений: 10,505
07.03.2012, 16:12     Время #5
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include <stdio.h>
    
int main(void){
    int h, m;
    
    while ( printf("Hours: ") && scanf("%d", &h) == 1 && h > -1 && h < 24
        && printf("Minutes: ") && scanf("%d", &m) == 1 && m > -1 && m < 60 ){
            if ( ( m -= 30 ) < 0 ){
                m += 60;
                if ( ( h -= 1 ) < 0 )
                    h = 23;
            }
            printf("30 min before: %02d:%02d\n", h, m);
    }
    
    return 0;
}
-=ЮрА=-
Заблокирован
Автор FAQ
07.03.2012, 16:15     Время #6
Здесь покрасивей в плане вывода
код выше + манипуляторы
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
#include <iostream>
#include <iomanip>
using namespace std;
 
int main()
{
    int clocks;
    int hours;
    int minutes;
    int differece;
    while(true)
    {
        cout<<"Chasi : ";cin>>hours;
        cout<<"Minuti: ";cin>>minutes;
        cout<<setw(2)<<setfill('0')<<"Vvedeno vremya: "<<hours<<" : "
            <<setw(2)<<setfill('0')<<minutes<<endl;
        clocks = hours*60 + minutes;
        cout<<"Perevisti chasi v minutah : ";
        cin>>differece;
        clocks -= differece;
        hours   = clocks/60;
        minutes = clocks%60;
        cout<<setw(2)<<setfill('0')<<"Novoe vremya : "<<hours<<" : "
            <<setw(2)<<setfill('0')<<minutes<<endl;
    }
    return 0;
}
Миниатюры
Время  
go
Эксперт C++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
07.03.2012, 16:44     Время #7
C++
C++
1
2
3
4
5
6
7
8
9
#include <iostream>
#include "boost/date_time/posix_time/posix_time.hpp"
 
int main()
{
   boost::posix_time::time_duration time(1, 10, 0); // 01h 10m 00s
   std::cout << time << std::endl;
   std::cout << time - boost::posix_time::minutes(30) << std::endl;
}
http://liveworkspace.org/code/ac9088...433cf5328f2075
Код
01:10:00
00:40:00
AkA_ZadR
0 / 0 / 0
Регистрация: 07.09.2011
Сообщений: 8
07.03.2012, 19:30  [ТС]     Время #8
спс)
#include <iomanip> и setw(2) ток это не понял (

Добавлено через 2 часа 3 минуты
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
- вот очень на С++
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
#include <iostream>
#include <iomanip>
using namespace std;
 
int main()
{
    int clocks;
    int hours;
    int minutes;
    int differece;
    while(true)
    {
        cout<<"Chasi : ";cin>>hours;
        cout<<"Minuti: ";cin>>minutes;
        cout<<"Vvedeno vremya: "<<hours<<" : "
            <<minutes<<endl;
        clocks = hours*60 + minutes;
        cout<<"Perevisti chasi v minutah : ";
        cin>>differece;
        clocks -= differece;
        hours   = clocks/60;
        minutes = clocks%60;
        cout<<setw(2)<<"Novoe vremya : "<<hours<<" : "
            <<setw(2)<<minutes<<endl;
    }
    return 0;
}
спс)
#include <iomanip> и setw(2) ток это не понял ( и как сделать так что бы только раз время перевели второй не спрашивали
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2012, 21:27     Время
Еще ссылки по теме:

Функция, возвращающая время в часах и минутах на основе параметра - время в секундах - Pascal
Создайте функцию, которая возвращает время в часах и минутах на основе параметра - время в секундах.

Во время любых игр через некоторое время отключается ноутбук от перегрева - Ноутбуки
Всем привет, acer aspire e1-571g в последнее время стал выключаться от перегрева спустя некоторое время игры в абсолютно любую игру,...


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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
07.03.2012, 21:27     Время #9
Цитата Сообщение от AkA_ZadR Посмотреть сообщение
include <iomanip> и setw(2) ток это не понял
- iomanip подключает к нашей программе манипуляторы - это особые объекты(функции работающие с потоком вывода), которые позволяют изменить данные в результате обмена ими в потоке.
setw(n) - позволяет задать ширину вывода в n символов. В моём первом посте когда вводили 12 а затем нолик могли заметить что печаталось не оч красиво 12:0 так вот с setw(2) будет печататься 12:_0(красным выделил пробел который нам вставит setw чтобы поле было шириной 2 символа). Теперь о setfill
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
cout<<setw(2)<<setfill('0')
Мы уже знаем что делает setw впринципе хорошее дело но 12 :_0 всё равно непривычно глазу нам бы нолик ещё один вставить, так вот setfill его и вставляет на пустое место которое остаётся после отработки setw в результате выйдет строка 12:00 - красиво пропечатанное время.

PS:при желании от setw и iomanip можно избавиться, алгоритм никак от єтого не пострадает, только печататься время на экране будет коряво вот и всё

Цитата Сообщение от AkA_ZadR Посмотреть сообщение
cout<<setw(2)<<"Novoe vremya : "<<hours<<" : "
* * * * * * * * * * * * <<setw(2)<<minutes<<endl;
- то что выделено красным можно спокойно убрать, и из хедеров тоже

Цитата Сообщение от AkA_ZadR Посмотреть сообщение
#include <iostream>
#include <iomanip>
,
Рекомендую посмотреть сюда http://www.cplusplus.com/reference/i...ators/setfill/
для лучшего понимания
Yandex
Объявления
07.03.2012, 21:27     Время
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru