Как определить значение, представляющее значение времени в языке c ++ / getdate ()? - PullRequest
1 голос
/ 26 мая 2011

Я хотел бы напечатать год, месяц, день, час, мин, секунду данных ctime, используя getdate ().Может ли кто-нибудь пять мне пример того, как это сделать?

Вот код:

how can i define the DATA as a struct date time? 
getdate(&DATE);
     printf("The year is : %d\n",DATE.da_year);
     printf("The month is : %d\n",DATE.da_month);
     printf("The day is : %d\n",DATE.da_day);

также может кто-то сказать мне, как преобразовать из obj c в c ++ следующее:*

(NSString *)conv_fromDateToString:(NSDate *)normalDate{ //code }

Ответы [ 3 ]

0 голосов
/ 26 мая 2011
#include <ctime>
#include <iostream>
using namespace std;

int main() {
    time_t t = time(0);
    struct tm * p = localtime( & t );
    cout << "year is " << 1900 + p->tm_year << " day is " << p->tm_wday << endl;
}

Подробнее см. http://www.cplusplus.com/reference/clibrary/ctime/localtime/ и http://www.cplusplus.com/reference/clibrary/ctime/tm/.

0 голосов
/ 26 мая 2011

Я не совсем уверен, что вы спрашиваете.Если функция getdate, о которой вы спрашиваете, является функцией X / Open, то она принимает char const* в качестве аргумента;в C ++ это обычно получается путем вызова c_str() на std::string.Функция на самом деле принимает ряд других аргументов, однако, различными хитрыми способами;в частности, переменная окружения DATEMSK должна быть установлена ​​либо путем использования перед запуском приложения, либо путем вызова setenv (или putenv) из вашего приложения.

Обратите внимание, что эта переменная указываетимя файла, которое getdate читает для получения шаблонов для анализа времени и даты.

Функция возвращает указатель на tm, стандартную Unix-структуру с разбивкой по времени и дате.Возвращается нулевой указатель, указывающий на ошибку, с кодом ошибки в глобальной переменной getdate_err.

Все это подразумевает много статических данных и полное отсутствие безопасности потока.Это похоже на одну из тех унаследованных функций Unix, определенных в те времена, когда потоки не существовали, и которые в корне нарушаются, если смотреть с современной точки зрения.В отличие от большинства других в этом случае, похоже, что нет безопасной замены потока.

В любом случае, точную спецификацию getdate см. Posix-X / Openспецификации , а для спецификации tm (или struct tm, поскольку это является частью C API), см. спецификацию time.h в стандарте Posix или стандарте C.

0 голосов
/ 26 мая 2011

Мой предыдущий ответ был неверным.
Вам, вероятно, нужно это .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...