[ dejandj @ 30.07.2005. 14:58 ] @
Kako da dobijem i konvertujem (u C++) recimo "File Creation date" od fajla koji "otvaram" u "standardno" C vreme koje ju u C-u vrednost "time_t", sto je pak broj sekundi od Ponoci 1. Januara 1970... i to tekstualno?

Oveci broj valjda...

Inace da bi bilo OS nezavisno u prvoj txt liniji fajla imam ovo:
Name: SpNo 1 GS01a.msp 9. 6.2005 15:21

Pa se odavde moze izvuci vreme koje je na kraju...

[Ovu poruku je menjao dejandj dana 30.07.2005. u 16:27 GMT+1]
[ dejandj @ 01.08.2005. 16:34 ] @
Znam za nekoliko "idiotskih" resenja kao sto je npr menjanje "sistemskog" vremena i pozivanje funkcije "time ()"...

Nije valjda da "sistemski" niko nije razmisljao kad je pravio tu funkciju da joj se ne moze "podmetnuti" sta treba?

Postoji program (Win) zvani CreckClock "CrkckClock" koji to radi a protiv nekih virusa...
Ali mu se mora "rucno" zadati i time i program...

Brojanje "Prestupnih" i super prestupnih godina kao "2000" mi stvarno lici "idiotski" ali i tu je tzv "Milenium bug"...

To sto zlocinac "Februar" moze imati i 32 dana je stvarno ludo...

[ dejandj @ 17.09.2005. 10:52 ] @
Code:
/* mktime example: weekday calculator */
#include <stdio.h>
#include <time.h>

int main ()
{
  time_t rawtime, drugo;
  struct tm * timeinfo;
  int year, month ,day;
  char * weekday[] = { "Sunday", "Monday",
                       "Tuesday", "Wednesday",
                       "Thursday", "Friday", "Saturday"};

  /* prompt user for date */
  printf ("Enter year: "); scanf ("%d",&year);
  printf ("Enter month: "); scanf ("%d",&month);
  printf ("Enter day: "); scanf ("%d",&day);

  /* get current timeinfo and modify it to user's choice */
  time ( &rawtime );
  timeinfo = localtime ( &rawtime );
  timeinfo->tm_year = year - 1900;
  timeinfo->tm_mon = month - 1;
  timeinfo->tm_mday = day;

  /* call mktime: timeinfo->tm_wday will be set */
  drugo=mktime ( timeinfo );

  printf ("That day is a %s.\n", weekday[timeinfo->tm_wday]);
//  rawtime = time (NULL);
  printf ("%ld hours since January 1, 1970\n", rawtime/3600);
  printf ("%ld seconds since January 1, 1970\n", rawtime);
rawtime = time (NULL);
  printf ("%ld hours since January 1, 1970\n", drugo/3600);
  printf ("%ld seconds since January 1, 1970", drugo);

  return 0;
}


Evo...
Nasao sam ovakvo resenje, mozda nekom zatreba.

Sad bi mi trebalo da otvorim "neki" fajl i da iz njegovog "handle-a" ili vec nesto slicno, izvucem File Creation time (date) i da ga upisem u timeinfo...

Koristim DevC.
Ako neko zna kako procitati FileCreationTime pri otvaranju fajla nek prijavi.

Ona msdn microsoft uputstva su mi poprilicno nerazumljiva a i ne znam sta od tog mogu da koristim (i kako) u DevC-u.
[ leka @ 18.09.2005. 11:33 ] @
Dejane, koristi standardnu funkciju fstat() za to sto ti treba i zaboravi na Microsoft-ove zavrzlame (da ne koristim neku "tezu" rec)... Vise o njoj ovde: http://man.nu6.org/index.php/man/fstat/2 . Deklaracija ove funkcije se nalazi, prema standardu, u sys/stat.h - znaci sve sto ti treba je #include <sys/stat.h> . Ovo moze i u VC++, naravno, jer se stat.h nalazi u Microsoft Platform SDK.
[ dejandj @ 18.09.2005. 16:32 ] @
Citat:
leka: Dejane, koristi standardnu funkciju fstat() za to sto ti treba i zaboravi na Microsoft-ove zavrzlame (da ne koristim neku "tezu" rec)... Vise o njoj ovde: http://man.nu6.org/index.php/man/fstat/2 . Deklaracija ove funkcije se nalazi, prema standardu, u sys/stat.h - znaci sve sto ti treba je #include <sys/stat.h> . Ovo moze i u VC++, naravno, jer se stat.h nalazi u Microsoft Platform SDK.


Ideja (blago receno) ne zvuci lose!

Ali zveknuh google search i nis!

U stvari 133 "hit-a" ali nis konkretno...

Sve ovo mi zvuci pristojno, a krajnje neverovatno!


Evo neki "uvod" za one koji neznaju u cem je ustvari problem..:
http://www.codeproject.com/datetime/datetimedisc.asp


[ dejandj @ 23.09.2005. 10:17 ] @
Evo (najzad) resenja koje radi!

Code:

/* DevC 4.9.9.2 WinMe ansi File DATE / TIME "TEST" PROGRAM Dejan Djokovic 23. IX 2005.
Thanks to: "leka" (Dejan Lekic, [email protected], http://dejan.lekic.org) and
"Butch" Butch Bradley - Email: stbradley at users.sourceforge.net 
*/

#include <stdio.h> 
#include <io.h> 
#include <stdlib.h> 
#include <sys/stat.h> 
#include <time.h> 
 
int main(int argc, char *argv[]) 


int fh; 
struct stat file_stats; 
char *buff; 
time_t rawtime, drugo,trece,cetvrto;
struct tm * timeinfo;
struct tm * timeinfo1;
struct tm * timeinfo2;
 
fh = open("test.bin", 0); 

fstat(fh, &file_stats); 
  timeinfo = localtime ( &rawtime );

timeinfo = localtime( &file_stats.st_ctime );
  drugo=mktime ( timeinfo );
  printf ("%ld seconds since January 1, 1970\n", drugo);
  printf ("%ld hours since January 1, 1970\n", drugo/3600);
  printf ("File time / day is a %s.\n", asctime (timeinfo));
timeinfo1 = localtime( &file_stats.st_atime );
  trece=mktime ( timeinfo1 );
  printf ("%ld seconds since January 1, 1970\n", trece);
  printf ("%ld hours since January 1, 1970\n", trece/3600);
  printf ("File time / day is a %s.\n", asctime (timeinfo1));

time ( &rawtime );
  timeinfo = localtime ( &rawtime );
  printf ("%ld seconds since January 1, 1970\n", rawtime);
  printf ("%ld hours since January 1, 1970\n", rawtime/3600);
  printf ("File time / day is a %s.\n", asctime (timeinfo));

timeinfo2 = localtime( &file_stats.st_mtime );
  trece=mktime ( timeinfo2 );
  printf ("%ld seconds since January 1, 1970\n", trece);
  printf ("%ld hours since January 1, 1970\n", trece/3600);
  printf ("Modify File time / day is a %s.\n", asctime (timeinfo2));

printf("The file was created = %s\n",asctime(timeinfo2)); 
close (fh);
system("PAUSE");  
return 0; 
}


Jedino ne znam koju vrstu fajlova otvara ono "open("test.bin", 0)", meni otvara sve pod tim imenom naravno!