Racunjanje razlike datuma u c-u?

poruka: 8
|
čitano: 5.195
|
moderatori: Lazarus Long, XXX-Man, vincimus
1
+/- sve poruke
ravni prikaz
starije poruke gore
15 godina
neaktivan
offline
Racunjanje razlike datuma u c-u?

Jel netko možda zna kako bi najlakše izračunao razliku između dva datuma koja unosi korisnik, moram uzeti u obzir koliko dana ima mjesec i moram paziti na prijestupne godine...

Moj PC  
0 0 hvala 0
17 godina
neaktivan
offline
Racunjanje razlike datuma u c-u?

slični zadatak imam za napravit, ali u javi...

Moj PC  
0 0 hvala 0
16 godina
neaktivan
offline
RE: Racunjanje razlike datuma u c-u?

Najlaksi nacin (po meni) je izracunati ukupan broj dana jednoga i drugoga i oduzeti ih.

 

Ovaj dole kod (c++) racuna ukupan broj dana za zadani datum    

 

 

       my_time.ukupno_dana=my_time.dan+my_time.godina*365;

 

       int n=0;

 

       for(int i=0;i<my_time.godina;i++)

       {

        if (i%4==0 && i%100>0)

         my_time.ukupno_dana+=1;   

        else if (i%400==0)

          my_time.ukupno_dana+=1;

        else if (my_time.godina==0)

          my_time.ukupno_dana+=1;

       }

 

       if (my_time.mjesec>2)

       {

               if (my_time.godina%4==0 && my_time.godina%100>0)

                 my_time.ukupno_dana+=29;

               else if (my_time.godina%400==0)

                 my_time.ukupno_dana+=29;

               else if (my_time.godina==0)

                 my_time.ukupno_dana+=29;

               else my_time.ukupno_dana+=28;      

       }

 

       for(int i=1;i<my_time.mjesec;i++)

       {

        if(i==1 ||i==3 ||i==5 ||i==7 ||i==8 ||i==10 ||i==12)

            my_time.ukupno_dana+=31;

        else if (i==2);     

        else my_time.ukupno_dana+=30;

       }

 

 

Javu neznam pa kod nemogu prepisati ali mislim da ti nebi terbao biti problem, sto se tice c-a samo ovaj kod ubaci u funkciju i posalji joj podatke o danu mjesecu i godini i nakraju dodaj return. (nemoj zaboravit imena u kodu promjenit na ona koja stavis u funkciji) 

 

 

 

 

 

 

17 godina
neaktivan
offline
Racunjanje razlike datuma u c-u?

najmanji problem je konvertirat u javu, sintaksa je skoro pa ista

 

thx, uspio sam rješit

Moj PC  
0 0 hvala 0
17 godina
offline
Racunjanje razlike datuma u c-u?

Ovo bi bilo nešto jednostavno, samo se iskoriste ugrađene funkcije u time.h biblioteci:

 

 

 

#include<stdio.h>
#include <time.h>

 
int main()
{
    int dan1, mjesec1, godina1, dan2, mjesec2, godina2, razlika;
    time_t p, k;
    printf("Unesi prvi datum:\n");
    printf("Unesi dan: ");
    scanf("%d", &dan1);
    printf("Unesi mjesec: ");
    scanf("%d", &mjesec1);
    printf("Unesi godinu: ");
    scanf("%d", &godina1);
   
    struct tm v1 = {0, 0, 0, dan1, mjesec1-1, godina1-1900};

    printf("Unesi drugi datum:\n");
    printf("Unesi dan: ");
    scanf("%d", &dan2);
    printf("Unesi mjesec: ");
    scanf("%d", &mjesec2);
    printf("Unesi godinu: ");
    scanf("%d", &godina2);

    struct tm v2 = {0, 0, 0, dan2, mjesec2-1, godina2-1900};

    p = mktime(&v1);
    k = mktime(&v2);
    razlika = difftime(p, k) / (60 * 60 * 24);
    printf("Razlika iznosi: %d dana", razlika);
    return 0;
}







Za objašnjenja rada funkcija pogledaj ovdje.
   

 


Poruka je uređivana zadnji put sub 16.10.2010 19:51 (Floki).
 
0 0 hvala 0
17 godina
odjavljen
offline
Racunjanje razlike datuma u c-u?

U C# ima zgodna timespan klasa za takve stvari...

Freak Show Inc.
 
0 0 hvala 0
17 godina
offline
RE: Racunjanje razlike datuma u c-u?
Friday kaže...

U C# ima zgodna timespan klasa za takve stvari...

To i jest bit stvari, čemu računati broj dana u mjesecu i prijestupne godine kad već imaju ugrađene klase za to.

Ja u c++ koristim ctime biblioteku za takve stvari, a u čistom c to bi bilo ovako

17 godina
neaktivan
offline
Racunjanje razlike datuma u c-u?

java isto ima klasu calendar, ali nesmijem koristit...

moram baš ovak sa forom.... glupo, al jbg kad profesor tak kaže....

Moj PC  
0 0 hvala 0
1
Nova poruka
E-mail:
Lozinka:
 
vrh stranice