GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Szkript kérések => A témát indította: .::David::. - 2013. November 05. - 15:44:22

Cím: Dátum kiírás
Írta: .::David::. - 2013. November 05. - 15:44:22
Sziasztok
Kellene nekem egy olyan kód hogy ha a jelenlegi dátumhoz hozzáadok pl 100 órát akkor kiírja a kapott dátumot
Cím: Dátum kiírás
Írta: Flash - 2013. November 05. - 16:17:02
new date[3];
getdate(date[0], date[1], date[2]);
printf(\"A kapott idõ: %i.%i.%i\", date[0], date[1], date[2]+100);

 
E: Bár ez asszem nem konvertálja le.
Cím: Dátum kiírás
Írta: .::David::. - 2013. November 05. - 16:27:15

 
new date[3];
getdate(date[0], date[1], date[2]);
printf(\"A kapott idõ: %i.%i.%i\", date[0], date[1], date[2]+100);

 
E: Bár ez asszem nem konvertálja le.
 
[/quote]
 
A kapott idõ: 2013.11.105

 
Nem egészen erre gondoltam
pl a jelenlegi dátumhoz hozzáadom a 100 órát: 2013/11/05 + 100 óra és akk írja ki a kapott eredményt jelen esetben: 2013/11/10
Cím: Dátum kiírás
Írta: Dfoglalo - 2013. November 05. - 16:40:33
Kedves Témanyitó!
 

 

 
new date[3];
getdate(date[0], date[1], date[2]);
printf(\"A kapott idõ: %i.%i.%i\", date[0], date[1], date[2]+100);

 
E: Bár ez asszem nem konvertálja le.
 
[/quote]
 
A kapott idõ: 2013.11.105

 
Nem egészen erre gondoltam
pl a jelenlegi dátumhoz hozzáadom a 100 órát: 2013/11/05 + 100 óra és akk írja ki a kapott eredményt jelen esetben: 2013/11/10
 
[/quote]
Így nem a dátumhoz, hanem a date[2] változóhoz adsz hozzá 100-at. Én valami ilyesmit készítenék:
 

// Feladat: adjunk hozzá a mai dátumhoz 1000 napot!
new date[3];
getdate(date[0], date[1], date[2]);
printf(\"A kapott idõ: %i.%i.%i\", date[0], date[1], date[2]);
new Nap = 1000%30;
new Honap = 1000/30;
new Ev = Honap2/12;
printf(\"%d, %d, %d\", Nap, Honap, Ev);
date[0] += Ev;
new Honap2 += Honap-(Ev*12);
date[2] += Nap;
if((Honap2 + date[1]) > 12)
{
     new Ev2 = Honap2/12;
     date[1] += Honap2%12;
     date[0] += Ev2;
}
else
{
     date[1] += Honap;
}
printf(\"Az új idõ: %i.%i.%i\", date[0], date[1], date[2]);

 
Jobbat most nem tudtam kieszelni, és lehet, hogy külön függvény is van a dologra :hmmm:
 
Dfoglalo
Cím: Dátum kiírás
Írta: kadaradam - 2013. November 05. - 17:15:05
gettime()-al lekéred a jelenlegi unix idõt, majd hozzáadsz (óra * 3600)-t.
Tehát:
gettime() + ( óra * 3600 )

 
A kapott értéket eltárolod egy változóba, majd egy függvény, vagy plugin segítségével átkonvertálod dátummá. Itt a plugin, én ezt választanám:
http://forum.sa-mp.com/showthread.php?t=394935
Cím: Dátum kiírás
Írta: Dfoglalo - 2013. November 05. - 17:31:12
Na befejeztem a kódomat, azt hiszem, most már teljesen jó. Azonban számolnod kell azzal is, hogy vannak szökõévek, plusz a hónapok sem állanak mindig ugyanannyi napból. Viszont egy kis délutáni alapszintû matek gyakorlásnak nagyon jó volt a kérdésed, vagy inkább kérésed. Amúgy szerintem inkább használd a kadaradam által linkelt plugint, mert az kell neked. Habár meg lehet oldani forráskóddal is a szökõévek, illetve a több napos hónapok, valamint az óraátállítások felismerését, hiszen a linkelt eszközt is egyszer megírták valahogyan forráskódként - igaz, ott egy külön fájl külön nyelvén - szóval nem lehetetlen a dolog. Csak eszméletlenül, és feleslegesen bonyolult, ha egyszer létezik már rá plugin. Ha mégis kódként szeretnéd megírni, ne várj a mi segítségünkre, mert ekkora munkát senki sem végezne el - még szimpla gyakorlásként, és unalomûzésként sem, mint ahogyan azt én is tettem. De ha még ennek neki is vágtál volna, akkor nem lenne nyitva most ez a téma, hiszen akkor nem kéne egy ilyen alap szintû dologért segítséget kérned tõlünk. :)
 
Dfoglalo
Cím: Dátum kiírás
Írta: .::David::. - 2013. November 05. - 17:55:21
Na úgy néz ki hogy a pluginnal sikerült valamit összehozni
köszönöm mindenkinek