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

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

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

Время - C++

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

Даётся часы и минуты к примеру 12ч 00м и нам надо их перевести на 30 минут назад тоесть будет 11 30
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.03.2012, 15:55
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Время (C++):

Записи. Дано время t1 и время t2. Определить, сколько времени пройдет от t1 до t2 - C++
Дано время t1 и время t2. Гарантируется, что t1 и t2 -время одного дня, а также что t1<t2. Определить, сколько времени пройдет от t1 до t2....

Выводить текущее время в определенные позиции консоли во время работы - C++
Портирую консольное приложение. Есть код, который работал после компиляции в BC++ 3.1, после компиляции под MinGW GCC программа не...

Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t. - C++
Прошу помочь. Ввести структуру time с полями часы, минуты, секунды. Составить и протестировать функции: next(t, t1, d), которая...

Ввести время и от него отнять системное время - C++
Необходимо ввести время и от него отнять системное время,необходимо сделать так Введите часы : 17 минуты : 00 и результат к примеру...

Написать программу вычисления величины дохода по вкладу. Процентная ставка (% годовых) и время хранения (дней) задаются во время работы программы - C++
1. Написать программу вычисления величины дохода по вкладу. Процентная ставка (% годовых) и время хранения (дней) задаются во время работы...

Определить общее число и общее время удалений за время матча - C++
В ходе хоккейного матча игроки обеих команд удалялись в общей сложности 24 раза. По каждому удалению известен номер команды удаленного...

8
go
Эксперт С++
3586 / 1366 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
07.03.2012, 16:02 #2
Ну можно boost::gregorian заюзать.
0
Gepar
1177 / 533 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
07.03.2012, 16:05 #3
AkA_ZadR, в системе перевести чтоль? Хотелось бы больше конкретики.
0
-=ЮрА=-
Заблокирован
Автор 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;
}
0
Миниатюры
Время  
easybudda
Модератор
Эксперт CЭксперт С++
9683 / 5633 / 956
Регистрация: 25.07.2009
Сообщений: 10,812
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;
}
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;
}
0
Миниатюры
Время  
go
Эксперт С++
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/ac9088af8d770b1fed433cf5328f2075
Код
01:10:00
00:40:00
0
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) ток это не понял ( и как сделать так что бы только раз время перевели второй не спрашивали
0
-=ЮрА=-
Заблокирован
Автор 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/iostream/manipulators/setfill/
для лучшего понимания
0
07.03.2012, 21:27
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.03.2012, 21:27
Привет! Вот еще темы с ответами:

время - C++
как в сишке можно реализовать время?? ну допустим если время меньше 12-00 на экран вывести доброе утро.. если 12-18 добрый день.. ...

Время в С++ - C++
Здравствуйте! может мне ктонибудь подсказть нормальный способ ввода времени вида hh:mm:ss Ато я пока только смог сделать вондальский...

время - C++
неподскажите как сделать будильник с использованием системного времени. кое какие наработки уже есть незнаю что дальше работаю в...

время - C++
Здравствуйте господа програмисты!знает ли кто как в с++ вывести на экран время.может это системная функция или ещё что,буду очень...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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