System time

    
  1. Atsijungęs

    Jeppi

    Pranešimai: 0

    Sveiki. Gal yra gerai nusimananciu apie system time tuos visus. Noriu padaryti kad npc html rasytu kada baigsis registracija i eventa, tarkim pradetu skaiciuot laika nuo 10 min iki 0.

    TvtEventTimes = 20:47,14:00,16:00


    Reiketu padaryti kad kai pasilest eventas nustatytu kad pradetu eiti laikas nuo 10 min.

    Ar cia per sita reik kaipnors? Ar yra kitokiu budu skaiciuot laika?
    long delay = System.currentTimeMillis();
    	int mins = (int) (548464 - System.currentTimeMillis());
    	int seconts = (int) (832434 - System.currentTimeMillis());
    	String laikas = mins + ":"+ seconts;
    25 Spalio 2014 - 22:32 / #1
  2. 
  3. Atsijungęs

    povis111

    Pranešimai: 0

    daug budu yra susiskaiciuot 10min iki 0, gali pasidaryt Runnable task'a su ThreadPool'u, kuriam esme, kad jis vis nuims po 1s kol nebeliks, gali ta pati varianta ir su Thread.sleep(), kas nelabai patartina nes visa thread'a sleepina, ir taip pat gali pasiimt System.currentTimeMillis(), prie ju pridet 10min paverstas i milisekundes ir po to vis grazint kiek laiko atimant dabartini. Reiktu rasyt taip. long ateitis = System.currentTimeMillis() + 10 * 60 * 1000; long likutis = ateitis - System.currentTimeMillis(); pavertimas taip pat paprastas sekundes = likutis % 60000; minutes = (likutis - sekundes * 1000) / 60000; tai tiek, dabar beliko suvirskint ka parasiau :D
    Paskutinį kartą redagavo: povis111 26 Spalio 2014 - 01:41
    26 Spalio 2014 - 01:39 / #2
  4. 
  5. Atsijungęs

    Jeppi

    Pranešimai: 0

    Butu gerai trecias varijantas. Tik laikas nemazeja. Kaip 10 roto taip rodo :)

    long ateitis = System.currentTimeMillis() + 10 * 60 * 1000; 
    	 long likutis = ateitis - System.currentTimeMillis();
    	 int sekundes =(int) (likutis % 60000);
    	 int minutes =(int) ((likutis - sekundes * 1000) / 60000);
    	 String laikas = minutes + ":" + sekundes;
    26 Spalio 2014 - 08:37 / #3
  6. 
  7. Atsijungęs

    povis111

    Pranešimai: 0

    nes ateiti paima nuo dabarties, reikia, kad kiekviena kart neimtum long ateitis = System.currentTimeMillis() + 10 * 60 * 1000; o turetum ji jau nusistates kiekvienai patikrai.
    26 Spalio 2014 - 12:33 / #4
  8. 
  9. Atsijungęs

    Jeppi

    Pranešimai: 0

    Kaip cia sugavot dabar man ta log. Jei laikas visuomet keisis
    TvtEventTimes = 20:47,14:00,16:00
    26 Spalio 2014 - 13:53 / #5
  10. 
  11. Atsijungęs

    povis111

    Pranešimai: 0

    http://subversion.assembla.com/svn/L2jFrozenInterlude/trunk/gameserver/head-src/com/l2jfrozen/gameserver/model/entity/event/manager/EventsGlobalTask.java
    checkRegisteredEvents() paleidziamas kai tikrina ar laikas eventui/
    susikurciau atskira klase kuri turetu
    
    private long ateitis;
    

    
    void nustatytiAteiti()
    {
       ateitis = System.currentTimeMillis() + 10 * 60 * 1000; 
    }
    

    
    if(registeredEventsAtCurrentTime!=null){
    			for(EventTask actualEvent: registeredEventsAtCurrentTime){
    				
    				ThreadPoolManager.getInstance().scheduleGeneral(actualEvent, 5000);
    				//cia paleidzia
                                    tavoklase.nustatytiAteiti();
    			}
    		}
    

    galiausiai naudotum ta klase, kad skaiciuotu laika
    
    string laikas()
    {
        long likutis = ateitis - System.currentTimeMillis();
        int sekundes =(int) (likutis % 60000);
        int minutes =(int) ((likutis - sekundes * 1000) / 60000);
       return minutes + ":" + sekundes;
    }
    

    zinoma nera patartina tokius skaiciavimus taip naudot, tau reiktu sita klase runnable gal net pasidaryt, kad atnaujintu laika kas 1s
    26 Spalio 2014 - 14:11 / #6
  12. 
  13. Atsijungęs

    wewewe

    Pavadinimas: L2 žaidėjas

    Narys

    Pranešimai: 727

    Vartotojo apdovanojimai: 16

    sadomazochistai jus, terliojates su milisekundem. Yra javos standartinej bibliotekoj klases darbui su laiku/datom. pasiimat kalendoriu, nusistatot ateities laika, ir pasileidziat scheduled task'a...
    26 Spalio 2014 - 14:33 / #7
  14. 
  15. Atsijungęs

    povis111

    Pranešimai: 0

    žinau, kad yra, bet tingiu googlint ir aiskint kaip ten kas veikia. pagal sudetinguma, man lygiai taspac, o pradedanciajam turetu but lengviau nei su milisekundem, zinoma :D
    26 Spalio 2014 - 14:39 / #8