Какая альтернатива функции getdate() в С++ 4.3.2?

Это работает в Turbo C++, но не работает в более новых версиях C++. Есть ли альтернативы этому?

#include<stdio.h>
#include<dos.h>

main()
{
   struct date d;
   getdate(&d);
   printf("Current system date is %d/%d/%d\n",d.da_day,d.da_mon,d.da_year);
   return 0;
}

person Yashit    schedule 27.10.2016    source источник
comment
int main() может быть?   -  person Treycos    schedule 27.10.2016
comment
Пространство имен std::chrono имеет целый набор функций даты и времени.   -  person Ben Voigt    schedule 27.10.2016
comment
Прекратите использовать Turbo C++, и точка.   -  person    schedule 27.10.2016
comment
Пожалуйста, пожалуйста, выберите компилятор, который не устарел на 20 лет. Обучение древними инструментами станет для вас серьезной помехой.   -  person BoBTFish    schedule 27.10.2016
comment
@BoBTFish, NickyC: OP уже пытается использовать более новый компилятор.   -  person Ben Voigt    schedule 27.10.2016
comment
Начать писать настоящий C++?   -  person Kerrek SB    schedule 27.10.2016
comment
Пример здесь должен помочь вам в работе: en.cppreference.com/w/cpp/ хроно/c/местное время   -  person Ben Voigt    schedule 27.10.2016


Ответы (1)


Самая прямая аналогия getdate — это time + localtime.

#include <stdio.h>
#include <time.h>       /* time_t, struct tm, time, localtime */

int main ()
{
    time_t rawtime;
    time ( &rawtime );

    tm * const ptm = localtime ( &rawtime );

    printf("Current system date is %d/%d/%d\n",
             ptm->tm_day,ptm->_mon+1,ptm->tm_year+1900);

    return 0;
}

В качестве альтернативы, для подхода в стиле "C++", найдите std::chrono

person Martin Bonner supports Monica    schedule 27.10.2016