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

Время - C++

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

C++ Функция: Написать функцию next(t, t1, d), которая присваивает параметру t1 время на d секунд больше, чем время t.
C++ Время в С++
C++ Написать программу вычисления величины дохода по вкладу. Процентная ставка (% годовых) и время хранения (дней) задаются во время работы программы
C++ Записи. Дано время t1 и время t2. Определить, сколько времени пройдет от t1 до t2
Время C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
go
Эксперт C++
3582 / 1362 / 128
Регистрация: 16.04.2009
Сообщений: 4,528
07.03.2012, 16:02     Время #2
Ну можно boost::gregorian заюзать.
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,508
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
Модератор
Эксперт С++
 Аватар для easybudda
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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++
3582 / 1362 / 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
 Аватар для 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     Время
Еще ссылки по теме:

Определить общее число и общее время удалений за время матча C++
Выводить текущее время в определенные позиции консоли во время работы C++
C++ Ввести время и от него отнять системное время

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

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор 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     Время
Ответ Создать тему
Опции темы

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