Předdefinuješ si měsíce (new daysinMonth[12] = {31,28,31,...}; // vyplň si to sám), kolik dní v nich jsou. Zjistíš dnešní datum (dále jako d, m, y). Podmínka na zjištění přestupného roku jsem někde psal tak si to jen dovolím zkopírovat:
if (y % 4 == 0 && ( y % 100 != 0 || y % 400 == 0 ))
Teď je potřeba zajistit zacyklení a zjišťovat jestli nastavený čas (time) je vyšší než zbývající dny v měsíci (time > daysinMonth[m-1]-d). // m-1 kvůli indexaci od 0
Pokud ano, odečteš daysinMonth[m]-d od time a zvýšíš m
Pokud ne, nastavíš den d jako time a ukončíš cyklus
A takhle pokračuješ v cyklu dokud nějaký ten zbývající time existuje (resp. pokud je menší než zbývající počet dní v měsíci).
BACHA na případ, kdy je m prosinec a převyšuje počet dní, tzn. zvýšit rok (y++), m nastavit na leden.
Pak zabalit d, m, y a vrátit jako nové datum – tedy datum ukončení banu/VIP
Zkus nad tím popřemýšlet, napsat vlastní kód, pokud se někde zasekneš, tak ti pomůžu, ale celý kód ti nenapíšu