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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 54, средняя оценка - 4.65
"Ламер"-программер:)
5 / 5 / 0
Регистрация: 17.04.2009
Сообщений: 69
#1

Структура tm. Вывод даты. - C++

08.12.2009, 13:52. Просмотров 7203. Ответов 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
#include <time.h>
#include <stdio.h>
#include <iostream>
 
void main( void )
{
   struct tm when;
   time_t now, result;
   int    days;
 
   time( &now );
   when = *localtime( &now );
   printf( "Current time is %s\n", asctime( &when ) );
   printf( "How many days to look ahead: " );
   scanf( "%d", &days );
 
   when.tm_mday = when.tm_mday + days;
   if( (result = mktime( &when )) != (time_t)-1 )
      printf( "In %i days the time will be %i %c %i\n",
              days, when.tm_wday, when.tm_mon, when.tm_year);
   else
      perror( "mktime failed" );
}
Добавлено через 4 минуты
Кстати если попросить прогу вывести asctime( &when ), а не день месяц и год по отдельности, то всё работает.

Добавлено через 31 минуту
В общем нужно что бы прога выводила только день, месяц и год.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.12.2009, 13:52     Структура tm. Вывод даты.
Посмотрите здесь:

Структура для даты - C++
Здравствуйте, у меня возникла проблема, заключается она в дате. Подробнее: в программе у меня есть структура, в ней есть дата вида:...

Структура, описывающая понятие даты - C++
Задание Ввести структуру (с полями число, месяц, год) для описания понятия дата. Составить и протестировать функцию, которая: а)...

Структура для хранения даты - C++
Записать название месяца и день. Почему компилятор жалуется? #include &quot;stdafx.h&quot; #include &lt;iostream&gt; using namespace std; ...

Структура, последующий вывод. - C++
Помогите вывести на экран информацию о поездах, отпарвляющиеся после того времени, которое было введено с клавиатуры,если нет таковых -...

Структура. Ввод и вывод - C++
Выдает ошибку cin &gt;&gt;count; и cout &lt;&lt;count&lt;&lt;&quot;&quot;;, я понимаю в чём ошибка, но как мне её решить? #include &lt;iostream&gt; #include &lt;clocale&gt; ...

Вывод даты С++. - C++
В общем как на С++, вывести текущую дату? Вопрос наверно глупый, тем более интерфейс реализован в командной строке. В справке VS нашел...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
"Ламер"-программер:)
5 / 5 / 0
Регистрация: 17.04.2009
Сообщений: 69
08.12.2009, 19:43  [ТС]     Структура tm. Вывод даты. #2
исходный код отличен от приведённого выше лишь на вот эту строку ниже, и имеет примерно такой формат: In 29 days the time will be Wed Jun 01 12:45:47 1994

C++
1
2
      printf( "In %d days the time will be %s\n",
              days, asctime( &when ) );
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
08.12.2009, 19:50     Структура tm. Вывод даты. #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
#include <time.h>
#include <stdio.h>
 
int main( void )
{
   struct tm *when;
   time_t now, result;
   int    days;
 
   time( &now );
   when = localtime( &now );
   printf( "Current time is %s\n", asctime( when ) );
   printf( "How many days to look ahead: " );
   scanf( "%d", &days );
 
   when->tm_mday = when->tm_mday + days;
   if( (result = mktime( when )) != (time_t)-1 )
      printf( "In %i days the time will be %i %i %i\n",
              days, when->tm_wday, when->tm_mon, when->tm_year + 1900);
   else
      perror( "mktime failed" );
 
   return 0;
}
"Ламер"-программер:)
5 / 5 / 0
Регистрация: 17.04.2009
Сообщений: 69
08.12.2009, 20:44  [ТС]     Структура tm. Вывод даты. #4
Большое спасибо,Gravity. Но результаты всё равно какието странные. Когда вводишь 12 - показывает ноль дней, и месяц как-то "отстаёт" на 1. Либо функция localtime неправильно из системы дату берёт либо что-то ещё.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.12.2009, 21:03     Структура tm. Вывод даты.
Еще ссылки по теме:

Структура Train, вывод информации о поездах - C++
Описать структуру с именем TRAIN, содержащую следующие поля: название пункта назначения; номер поезда; время отправления. Написать...

Структура: Вывод результата в табличном виде - C++
Как сделать так, чтобы и результат выводил в виде таблицы? Помогите, пожалуйста #include &lt;iostream.h&gt; #include &lt;stdio.h&gt; #include...

Потокобезопасный вывод даты - C++
Как потокобезопасно вывести текущую дату? Как я понимаю, ctime возвращает ссылку на внутренний буфер, которым может пользоваться...

Автоматический вывод сообщения (по текущей дате). Структура - C++
Дана структура, задача — сверить введенные в структуру день и месяц с системными, и, если они совпадают, вывести сообщение. Моя прога...

Структура Student, вывод информации о заданном студенте - C++
1. Описать запись с именем student содержащую следующие поля: 1) Фамилия и имя 2) Предмет 3) Оценка 2. Написать...

Вывод на экране текущей даты - C++
Нужно вывести на экран текущую дату. Как это сделать. Что-то c time(time_t *t) соорудить? Я только не впубился как он работает. В MSDN...


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

Или воспользуйтесь поиском по форуму:
Gravity
562 / 556 / 39
Регистрация: 29.01.2009
Сообщений: 1,274
08.12.2009, 21:03     Структура tm. Вывод даты. #5
Мм, забыл - к when->tm_mon нужно плюсовать 1, т.к. отсчет месяцев идет с нуля. Еще вместо tm_wday должно быть tm_mday.
Yandex
Объявления
08.12.2009, 21:03     Структура tm. Вывод даты.
Ответ Создать тему
Опции темы

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