Pomoc s programem na narozeniny, popis s kódem v příspěvku – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Pomoc s programem na narozeniny, popis s kódem v příspěvku – Java – Fórum – Programujte.comPomoc s programem na narozeniny, popis s kódem v příspěvku – Java – Fórum – Programujte.com

 

Jarous0
Duch
23. 4. 2017   #1
-
0
-

Dobrý den, prosím o pomoc s programem na narozeniny, chci aby mi počítal za kolik dní budu mít narozeniny jenže když mám třeba 24. dubna a dneska je 23 dubna tak to počítá -1den a chci, aby to počítalo bez to mínus i když bude datum narozeni menší než aktuální datum. Při otočení znaménka se to vyřešilo ale akorát obráceně. Kód je zde: 
Tohle počítá kolik mi je let
 

 public void aktualizujDelkaObdobilabel1 (){
        LocalDate datumAktualniPocatek = zadavacDatumuPocatek.getValue();
        LocalDate datumAktualniKonec = zadavacDatumuKonec.getValue();
        if ((datumAktualniPocatek!=null)&&(datumAktualniKonec!=null)) {
            long delkaObdobiLong1 = zadavacDatumuKonec.getValue().toEpochDay() - 
                               zadavacDatumuPocatek.getValue().toEpochDay();
            
            delkaObdobiLabel1.setText("Stáří v letech: "+delkaObdobiLong1/365);
            
        } else {
            delkaObdobiLabel1.setText("");
            
        } //  konec "else" od "if"      
    } // konec aktualizujDelkaObdobilabel1()

A tohle počítá za jak dlouho mi bude třeba 20 let po odečtení aktuálního datumu od datumu narození a chtěl bych, aby to počítalo s plusovými hodnotami a když už bude po narozeninovém dnu, tak aby to spočítalo, že mám třeba "20 let mi bude za 0 dní" nebo tak podobně:
 

public void aktualizujDelkaObdobilabel2 (){
          
        LocalDate datumAktualniPocatek = zadavacDatumuPocatek.getValue();
        LocalDate datumAktualniKonec = zadavacDatumuKonec.getValue();
        if ((datumAktualniPocatek!=null)&&(datumAktualniKonec!=null)) {
            long delkaObdobiLong2 = zadavacDatumuKonec.getValue().getDayOfMonth()- 
                               zadavacDatumuPocatek.getValue().getDayOfMonth();

            
            delkaObdobiLabel2.setText("let mi bude za: "+delkaObdobiLong2);
            
        }
      
        else {
            delkaObdobiLabel2.setText("");
            
            
                
            
        } //  konec "else" od "if"     
        
       
    } // konec aktualizujDelkaObdobilabel2()

Prosím o radu. Děkuji za odpověď.

Nahlásit jako SPAM
IP: 80.251.251.–
Matrix17
~ Anonymní uživatel
300 příspěvků
23. 4. 2017   #2
-
0
-

#1 Jarous
Tahle funkce ti vrátí rozdíl dvou datumů ve dnech:

ChronoUnit.DAYS.between(start, end);

Takhle by mohlo například vypadat řešení:

    LocalDate[] birthdays = {
            LocalDate.of(1992, 5, 24),
            LocalDate.of(1992, 4, 24),
            LocalDate.of(1992, 4, 22),
            LocalDate.of(2017, 4, 22),
            LocalDate.of(2017, 4, 24),
            LocalDate.of(2017, 4, 28),
            LocalDate.of(2018, 4, 23)
    };

    for (LocalDate bd : birthdays)
      System.out.println("Budu mít narozeniny za (dny): " + getDaysToBirthDay(bd));
  }

  private static long getDaysToBirthDay(LocalDate birthday)
  {
    LocalDate currentDate = LocalDate.now();// aktuální datum

    if (birthday.isBefore(currentDate))// pokud se narodil před dnešním dnem
    {
      // uloží si den v letošním roce kdy má narozeniny
      LocalDate birthdayThisYear = LocalDate.of(currentDate.getYear(), birthday.getMonth(), birthday.getDayOfMonth());

      if (birthdayThisYear.isBefore(currentDate))// pokud už měl tento rok narozeniny
        return ChronoUnit.DAYS.between(currentDate, birthdayThisYear.plusYears(1));
      else
        return ChronoUnit.DAYS.between(currentDate, birthdayThisYear);
    }

    return ChronoUnit.DAYS.between(currentDate, birthday);// teprve se narodí
  }


Případně si to modifikuj pro své potřeby. ;)

Nahlásit jako SPAM
IP: 213.226.237.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 15 hostů

Podobná vlákna

Pomoc s kodem — založil ask@t

Pomoc s kodem — založil Shockwave

Exception, pomoc s kodem — založil shockwave

Pomoc s kodem, subquery, ALL — založil shockwave

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý