[c++/dev-cpp] Pobieranie daty z systemu

0

Witam!
Padło już na tym forum pytanie o pobieranie daty systemowej, odpowiedź brzmiała:

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

int main(void)
{
   struct date d;

   getdate(&d);
   printf("The current year is: %d\n", d.da_year);
   printf("The current day is: %d\n", d.da_day);
   printf("The current month is: %d\n", d.da_mon);
   return 0;
}

Niestety, pod dev-cpp nie chce mi toto przejść.
Kompilator zwraca:
6 aggregate date d' has incomplete type and cannot be defined 8 getdate' undeclared (first use this function)

Przejrzałem dos.h i wydaje mi się, że nie ma tam funkcji getdate, choć szczerze powiem, że gubię sie w plikach nagłówkowych :P

Czy da się pobrać datę (najlepiej nie korzystając z windows.h) w inny sposób? Ewentualnie czy ktoś może udostępnić dos.h zawierający getdate i NIEzawierający zbyt dużo zbędnego shitu? :)

Bylbym wdzięczny za pomoc.

Pozdrawiam

0

Jeśli w grę wchodzi WinApi, to polecam:

struct _SYSTEMTIME czas;
GetSystemTime(&czas);

gdzie strutkura _SYSTEMTIME wygląda tak:

typedef struct _SYSTEMTIME { // st
WORD wYear;
WORD wMonth;
WORD wDayOfWeek;
WORD wDay;
WORD wHour;
WORD wMinute;
WORD wSecond;
WORD wMilliseconds;
} SYSTEMTIME;

Zainkludować musisz windows.h, a podane czasy sa w UTC.

0

http://www.cppreference.com/stddate/ moze tu poszukaj czegos jak chcesz bez windows.h ...

// do postu ponizej: od 1 stycznia 1970

0

Jeżeli zależy Ci na pisaniu w AnsiC to użyj <time.h> i funkcji time() zwracającą czas w sekundach, który upłynął od jeśli dobrze pamiętam 1 czerwca 1970 a uzyskaną wartość następnie podstawić do ctime(), która zwróci Ci ciąg znaków zawierających obecną date i czas.

#include <time.h>

time_t czas;
time(&czas);
ctime(&czas);

1 użytkowników online, w tym zalogowanych: 0, gości: 1