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

Интервал между моментами 12-часового цикла - C++

Восстановить пароль Регистрация
 
fs444
6 / 10 / 0
Регистрация: 18.08.2009
Сообщений: 480
30.03.2010, 16:25     Интервал между моментами 12-часового цикла #1
3.26. Напишите функцию, которая воспринимает время как три целых аргумента (часы, ми-
нуты и секунды) и возвращает количество секунд, прошедших со времени, когда часы
в последний раз показали «12». Используйте эту функцию для вычисления интервала
времени в секундах между двумя моментами, находящимися внутри двенадцатичасо-
вого цикла.
Поясните пожалуйста, интервал между моментами 12-часового цикла - это между 12:00 и текущим моментом?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Voron8
13 / 13 / 1
Регистрация: 28.04.2009
Сообщений: 62
30.03.2010, 17:22     Интервал между моментами 12-часового цикла #2
Похоже, что да. Между 00:00:00 и сейчас.
fs444
6 / 10 / 0
Регистрация: 18.08.2009
Сообщений: 480
31.03.2010, 19:57  [ТС]     Интервал между моментами 12-часового цикла #3
Понятно. А как вытащить из time() часы, минуты и секунды?
Voron8
13 / 13 / 1
Регистрация: 28.04.2009
Сообщений: 62
31.03.2010, 21:27     Интервал между моментами 12-часового цикла #4
C++
1
2
long t=time(NULL);
t%=43200;
12 часов=12*60*60=43200 секунд
соответственно оставшееся и есть интересующее нас значение

Добавлено через 6 минут
Время по Гринвичу. Москва +4 часа
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
31.03.2010, 21:37     Интервал между моментами 12-часового цикла #5
я думаю fs444 имел в виду, как из вводимых данных, к примеру - "17.30.45" , 17 закинуть в hour, 30 в minute, 45 в second.
Кстати я тоже не знаю
Voron8
13 / 13 / 1
Регистрация: 28.04.2009
Сообщений: 62
31.03.2010, 22:09     Интервал между моментами 12-часового цикла #6
Цитата Сообщение от fs444 Посмотреть сообщение
Напишите функцию, которая воспринимает время как три целых аргумента (часы, ми-
нуты и секунды)
C++
1
2
3
int time(int hour, int minute, int second){
return hour*3600+minute*60+second;
}

Цитата Сообщение от neske Посмотреть сообщение
я думаю fs444 имел в виду, как из вводимых данных, к примеру - "17.30.45" , 17 закинуть в hour, 30 в minute, 45 в second.
Кстати я тоже не знаю
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
int hour=0, minute=0, second=0;
char a[]="17.30.45",buf[5];
 
for(int i=0,j=0,m=0;i<=strlen(a);i++){
  if(a[i]=='.'||a[i]==':'||!a[i]){
    switch (j){
     case 0:
        hour=atoi(buf);j++;m=0;
        break;
        case 1:
        minute=atoi(buf);j++;m=0;
        break;
    case 2:
            second=atoi(buf);j++;m=0;
            break;
    }
  }else{
     buf[m]=a[i];m++;buf[m]='\0';
  }
}
 
cout<<hour<<":"<<minute<<":"<<second;
это несколько общий вариант...
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
31.03.2010, 22:36     Интервал между моментами 12-часового цикла #7
Но пока "общий вариант" не доработан.. т.к. выдает не то что нужно.
Щас пытаюсь изменить
Voron8
13 / 13 / 1
Регистрация: 28.04.2009
Сообщений: 62
01.04.2010, 05:52     Интервал между моментами 12-часового цикла #8
в смысле не то что нужно, у меня все работает
Поясни пожалуйста.
neske
1419 / 786 / 55
Регистрация: 26.03.2010
Сообщений: 2,694
01.04.2010, 07:18     Интервал между моментами 12-часового цикла #9
Ну что же, можешь код полностью выложить?
Разумеется не для всей задачи, а только для ввода
Voron8
13 / 13 / 1
Регистрация: 28.04.2009
Сообщений: 62
01.04.2010, 14:55     Интервал между моментами 12-часового цикла #10
C++
1
2
3
4
5
6
cout<<"введите время(0.00.00):";
char a[100]={'\0'},buf[5];
cin.getline(a,100);
    int hour=0, minute=0, second=0;
 
read(a,hour,minute,second);
Вся задача
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
#include <iostream>
using namespace std;
 
void read(char* a,int& hour,int& minute,int& second){
    char buf[5];
 
    for(int i=0,j=0,m=0;i<=strlen(a);i++){
        if(a[i]=='.'||a[i]==':'||!a[i]){
            switch (j){
                case 0:
                    hour=atoi(buf);j++;m=0;
                    break;
                case 1:
                    minute=atoi(buf);j++;m=0;
                    break;
                case 2:
                    second=atoi(buf);j++;m=0;
                    break;
            }
        }else{
            buf[m]=a[i];m++;buf[m]='\0';
        }
    }
return ;}
 
int time(int hour, int minute, int second){
    return hour*3600+minute*60+second;
}
 
int main() {
    
cout<<"введите время(0.00.00):";
char a[100]={'\0'},buf[5];
cin.getline(a,100);
    int hour=0, minute=0, second=0;
 
read(a,hour,minute,second);
int t=time(hour,minute,second);
 
 
cout<<hour<<":"<<minute<<":"<<second<<"="<<t<<endl;;
    cin.get();
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.04.2010, 18:36     Интервал между моментами 12-часового цикла
Еще ссылки по теме:

Используя одну переменную цикла укажите возможные способы объявления заголовка счетного цикла. C++
C++ Подсчет дней между датами, преждевременный выход из цикла
C++ Как получить время по Гринвичу, а не своего часового пояса?

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

Или воспользуйтесь поиском по форуму:
fs444
6 / 10 / 0
Регистрация: 18.08.2009
Сообщений: 480
05.04.2010, 18:36  [ТС]     Интервал между моментами 12-часового цикла #11
Спасибо. Буду делать.
Yandex
Объявления
05.04.2010, 18:36     Интервал между моментами 12-часового цикла
Ответ Создать тему
Опции темы

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