Zmiana String'a na liczbę dwucyfrową
Najlepsza odpowiedź plx211 13.02.2016 21:49
@grankee zobaczyl moj facepalm, poprawiona wersjia:
new szMiesiac[3]; FormatTime(szMiesiac, 2, "%m", GetTime()); new miesiac = StringToInt(szMiesiac) + 1; PrintToChatAll("miesiac = %02d", miesiac == 13 ? 1 : miesiac);Przejdź do postu
Kuaczek
06.02.2016
Witam grono AMXX !
Posiadam pewien problem.
FormatTime(dzien, sizeof(dzien), "%d", GetTime()); // Liczba wyjściowa to przykładowo 01, 02, 03.... 11,12 ( miesiące )
Chciałbym by liczba miesięcy po dodaniu liczby jeden była o jeden większa i jest po użyciu tego:
new liczba = 1; new miesiacplus = StringToInt(miesiace) + liczba; // Lecz pojawia się ona w postaci: 1,2,3...11,12 new String:wyjscie[3]; IntToString(miesiacplus, wyjscie, sizeof(wyjscie));
Chciałbym by po dodaniu wartości (liczba) do (miesiace) liczba miała wartość w stringu 01,02,03..... 11,12 < = liczba dwucyfrowa
Próbowałem dodać do każdej wyjściowej liczby 0 ale to jest kiepski pomysł // (01,02.03...010,011,012)
Dziękuje za wszelką pomoc.
grankee
08.02.2016
Piszesz o miesiącach, a formatujesz dzień...
Według mnie powinno to działać:
new szMiesiac[2]; FormatTime(szMiesiac, 2, "%m", GetTime()); new miesiac=StringToInt(szMiesiac) (miesiac==12)?(miesiac=1):(miesiac++)//tak aby po grudniu (12) następował styczen(1) IntToString(miesiac,szMiesiac,2) if(miesiac<10) { szMiesiac[1]=szMiesiac[0] szMiesiac[0]='0'//ew w razie błędu zastąp apostrofy cudzysłowami czyli daj "0" }
i teraz masz w zmiennej szMiesiac juz o 1 wiekszy
plx211
13.02.2016
a moze zamiac rzutowac na string, uzyjesz odpowiedniej flagi i wyswietlicz jako integer?
tzn.
new liczba = 1; new miesiacplus = StringToInt(miesiace) + liczba; PrintToChatAll("miesiacplus = %02d", miesiacplus);
p.s.
Wiecej o tych flagach przeczytasz tutaj:
https://wiki.alliedm...nced_Formatting
http://www.cplusplus.../cstdio/printf/
https://pl.wikibooks.../C/printf#Flagi
@edit
kod oczywiscie nie testowany
Użytkownik plx211 edytował ten post 13.02.2016 21:02
Najlepsza odpowiedź
plx211
13.02.2016
@grankee zobaczyl moj facepalm, poprawiona wersjia:
new szMiesiac[3]; FormatTime(szMiesiac, 2, "%m", GetTime()); new miesiac = StringToInt(szMiesiac) + 1; PrintToChatAll("miesiac = %02d", miesiac == 13 ? 1 : miesiac);