Модераторы: bsa

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Дата из tm, В tm цифры -> как вычеслить дату? 
V
    Опции темы
DragoonFighter
Дата 16.1.2008, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 16.7.2007
Где: Access denied

Репутация: нет
Всего: нет



Добрый вечер, у меня появился один вопрос на который я в и-нете не могу найти ответа... незнаю как сформулировать вопрос. 
У нас есть код:
Код

...
printf("Current time is: ");
    int size;
    while(1) {
       const time_t tm = time(NULL);
       const char *ct = ctime(&tm);  
       size = strlen(ct) + 2; 
       system("cls");
       printf("Time: %s  ", ct); 
       cout << tm;
       fflush(NULL);
       while(size--)
          putc('\b', stdout); 
       holdon(1);
...


cout << tm; выводит на экран информацию о времени, но в виде компьютерного кода, т.е. комп считает например минуты не по 60 секунд а по 100. 
То есть если сечас на пример: Среда | Январь | Шестнадцатое Число | 16 часов | 55 минут | 38 секунд |год 2008,
то код будет вот таким: 1200498938

Если я хочу задать время в коде например: 1200534356, то как мне вычислить : День недели | Месяц |число | час | минуты | секунды|год ?

--------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то.
PM MAIL WWW ICQ Skype YIM MSN   Вверх
TGrey
Дата 16.1.2008, 22:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 294
Регистрация: 1.12.2007

Репутация: нет
Всего: 1



И что это получится если считать не по 60, а по 100 smile 
Я с этими функциями еще не знаком, но уверен, что есть другой способ, нежели сидеть считать какой сегодня день из такого числа, конечно если ты шпион, то программе цены не будет! smile 
PM MAIL   Вверх
DragoonFighter
Дата 16.1.2008, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 16.7.2007
Где: Access denied

Репутация: нет
Всего: нет



Нет что касается прог-и все можно сделать гораздо легче... я просто наткнулся на этот tm и увидел выведенный код. Я на информатике чтото слышал что комп считает часы, вообще время и дату по другому. Но как именно вот это мне интересно...
--------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то.
PM MAIL WWW ICQ Skype YIM MSN   Вверх
Fazil6
Дата 16.1.2008, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 7
Всего: 60



Цитата(DragoonFighter @  16.1.2008,  21:48 Найти цитируемый пост)
Если я хочу задать время в коде например: 1200534356, то как мне вычислить : День недели | Месяц |число | час | минуты | секунды|год ?



функции 

localtime
gmtime
mktime

PM MAIL   Вверх
DragoonFighter
Дата 16.1.2008, 23:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 16.7.2007
Где: Access denied

Репутация: нет
Всего: нет



A C string containing the date and time information in a human-readable format.

The array which holds this string is statically allocated and shared by both the ctime and asctime functions. Each time either one of these functions is called the content of this array is overwritten.

Усе понятно благодарю!


M
JackYF
Не забываем помечать тему решённой.


Это сообщение отредактировал(а) JackYF - 16.1.2008, 23:25
--------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то.
PM MAIL WWW ICQ Skype YIM MSN   Вверх
TGrey
Дата 16.1.2008, 23:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 294
Регистрация: 1.12.2007

Репутация: нет
Всего: 1



[QUOTE=Fazil6,16.1.2008,  23:06][QUOTE=DragoonFighter, 16.1.2008,  21:48, post1382094]
функции 

localtime
gmtime
mktime
Цитата

Извените, что вмешиваюсь не в свою тему, но мне это тоже ведь интересно! smile 


А это функции библиотеки <time.h> или в ++ <ctime>?
PM MAIL   Вверх
DragoonFighter
Дата 16.1.2008, 23:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 16.7.2007
Где: Access denied

Репутация: нет
Всего: нет



Тему пока не надо закрывать или метить, я сам ее помечу, сначала будем решать...  smile 
--------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то.
PM MAIL WWW ICQ Skype YIM MSN   Вверх
JackYF
Дата 16.1.2008, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

Репутация: 6
Всего: 162



Цитата(TGrey @  16.1.2008,  22:23 Найти цитируемый пост)
А это функции библиотеки <time.h> или в ++ <ctime>? 

и там, и там.
<ctime> - обёртка вокруг <time.h>

Цитата(DragoonFighter @  16.1.2008,  22:25 Найти цитируемый пост)
я сам ее помечу, сначала будем решать...

Гм... твоё право.


--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
Fazil6
Дата 16.1.2008, 23:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 7
Всего: 60



Код

#include <iostream>
#include <time.h>

char day[][4] = 
{
    "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"
};

char mon [][4] = {"Jan", "Fab", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Des"};

int main()
{
    time_t timex = time(NULL);
    tm t = *localtime(&timex);

    std::cout << t.tm_mday << " " << mon[t.tm_mon] << " " << t.tm_year + 1900 << " year\n"
        << day[t.tm_wday] << " " << t.tm_hour << " h " << t.tm_min << " min " << t.tm_sec << " sec\n\n"
        << asctime(&t);


    return 0;
}

PM MAIL   Вверх
warmonger_
Дата 16.1.2008, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 155
Регистрация: 7.7.2007
Где: г. Киев

Репутация: 1
Всего: 3



Цитата(DragoonFighter @  16.1.2008,  23:05 Найти цитируемый пост)
Я на информатике чтото слышал что комп считает часы, вообще время и дату по другому. Но как именно вот это мне интересно... 


количество секунд прошедших от полуночи 1 января 1970
--------------------
Make everything as simple as possible, but not simpler.Albert Einstein
PM MAIL   Вверх
DragoonFighter
Дата 17.1.2008, 01:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 16.7.2007
Где: Access denied

Репутация: нет
Всего: нет



warmonger_, т.е. он просто добавляет секунды и из этого вычисляет актуальное время?
Так, значит для компьютера его число это его время, и при выводе на экран он выводит свое число в время которое для нас понятно т.е. день, минута, час, секунда..... а можно сделать наоборот. Предположим у нас есть дата лалала время лалала и т.д. Можно это конвертировать в число для компьютера? т.е.:
Не из: 1200498938 в Среда | Январь | Шестнадцатое Число | 16 часов | 55 минут | 38 секунд |год 2008
а из: Среда | Январь | Шестнадцатое Число | 16 часов | 55 минут | 38 секунд |год 2008 в 1200498938 ?
--------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то.
PM MAIL WWW ICQ Skype YIM MSN   Вверх
Fazil6
Дата 17.1.2008, 01:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1653
Регистрация: 3.5.2006
Где: Минск

Репутация: 7
Всего: 60



Цитата(DragoonFighter @  17.1.2008,  00:23 Найти цитируемый пост)
а из: Среда | Январь | Шестнадцатое Число | 16 часов | 55 минут | 38 секунд |год 2008 в 1200498938 ?


Код

    time_t timex = time(NULL);
    tm t = *localtime(&timex);
    
   
    t.tm_year = t.tm_year + 1;
    timex = mktime(&t);


PM MAIL   Вверх
DragoonFighter
Дата 18.1.2008, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 115
Регистрация: 16.7.2007
Где: Access denied

Репутация: нет
Всего: нет



Fazil6, чтото не работает, можете привести пример для ввода числа, конвертирования этого числа в дату и время и вывод на экран? А то у меня многа ошибок находит....?
--------------------
Зрелость личности - это не когда человек хочет умереть ради кого-то, а когда он хочет жить ради кого-то.
PM MAIL WWW ICQ Skype YIM MSN   Вверх
MAKCim
Дата 18.1.2008, 10:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 2
Всего: 207



Цитата(DragoonFighter @  18.1.2008,  09:15 Найти цитируемый пост)
можете привести пример для ввода числа, конвертирования этого числа в дату и время и вывод на экран? А то у меня многа ошибок находит....? 

Код

int main() {
    time_t time;
    scanf("%d", &time);
    struct tm * tm = localtime(&time);
    printf("%d.%d.%d\n", time.tm_mday, time.tm_mon, time.tm_year + 1900);
    return 0;
}



--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
codelord
Дата 18.1.2008, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

Репутация: 1
Всего: 39



Код

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main ( int argc, char **argv ) {
 if( argc <= 1 ) return 0;
 long cdate;
 cdate = atoi( argv[1] );
 struct tm stm;
 localtime_r( &cdate, &stm );
 printf( "%02d/%02d/%d - %02d:%02d:%02d\n",
        stm.tm_mday,
        stm.tm_mon+1,
        1900+stm.tm_year,
        stm.tm_hour,
        stm.tm_min,
        stm.tm_sec );
 return 0;
}

используем:
программа.exe 12345678


--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0577 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.