Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Problem sa vremenom...

[es] :: C/C++ programiranje :: Problem sa vremenom...

[ Pregleda: 2710 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

dejandj

Član broj: 92
Poruke: 3620
*.rcub.bg.ac.yu.



Profil

icon Problem sa vremenom...30.07.2005. u 14:58 - pre 228 meseci
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]
 
Odgovor na temu

dejandj

Član broj: 92
Poruke: 3620
*.rcub.bg.ac.yu.



Profil

icon Re: Problem sa vremenom...01.08.2005. u 16:34 - pre 228 meseci
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...


 
Odgovor na temu

dejandj

Član broj: 92
Poruke: 3620
*.rcub.bg.ac.yu.



Profil

icon Re: Problem sa vremenom...17.09.2005. u 10:52 - pre 226 meseci
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.

 
Odgovor na temu

leka
Dejan Lekić
senior software engineer, 3Developers
Ltd.
London, UK

Član broj: 234
Poruke: 2534
..31.216.81.gus.vf.siwnet.net.

Sajt: dejan.lekic.org


+2 Profil

icon Re: Problem sa vremenom...18.09.2005. u 11:33 - pre 226 meseci
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.
Dejan Lekic
software engineer, MySQL/PgSQL DBA, sysadmin
 
Odgovor na temu

dejandj

Član broj: 92
Poruke: 3620
*.rcub.bg.ac.yu.



Profil

icon Re: Problem sa vremenom...18.09.2005. u 16:32 - pre 226 meseci
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



 
Odgovor na temu

dejandj

Član broj: 92
Poruke: 3620
*.rcub.bg.ac.yu.



Profil

icon Re: Problem sa vremenom...23.09.2005. u 10:17 - pre 226 meseci
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!





 
Odgovor na temu

[es] :: C/C++ programiranje :: Problem sa vremenom...

[ Pregleda: 2710 | Odgovora: 5 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.