Datum a čas - výpočty – Java – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama
Reklama

Datum a čas - výpočty – Java – Fórum – Programujte.comDatum a čas - výpočty – Java – Fórum – Programujte.com

 

Hledá se programátor! Plat 1 800 € + bonusy (firma Boxmol.com)
Ladis
~ Anonymní uživatel
7 příspěvků
2. 12. 2011   #1
-
0
-

Ahoj,

mel bych dotaz ohledne práce s datem...

V jave teprve zacinam (nebo vice-mene nejen v jave   ) a zacal jsem si hrat s datumem.

Potrebuji porovnat predem nastaveny datum (napr. 1.1.2011 22:00) s aktualnim casem a

vypsat rozdil ve dnech a minutach.

Na webu jsem neco nasel, ale nejak se nedari ...   

Zatim mam napsano toto (snad to neni uplna blbost   ):

import java.util.*;

import java.text.*;
import java.util.Calendar;

public class Datum {
public static void main(String[] args) {
 
  Date curentDate = new Date();           // vypsani aktualniho data a casu
  SimpleDateFormat df = new SimpleDateFormat("d.M.Y HH:mm");
  System.out.println("Dnes je: " + df.format(curentDate) + " hod.");
 
  Calendar curentDate2 = Calendar.getInstance();       // nastaveni konkretniho data a casu
  curentDate2.setLenient(false);
  curentDate2.set(2011, 10, 20, 22, 15, 00);
  System.out.println("Nastaveny datum je: " + df.format(curentDate2.getTime()) + " hod."); 
 
  System.out.println("Rozdil je: " + "(zde bude pocet) " +    // vypocet doby
   "dni" + ", coz je " + "(zde bude pocet) " + "minut.");
    
}

}

Nahlásit jako SPAM
IP: 94.112.247.–
Reklama
Reklama
Redby0
Návštěvník
3. 12. 2011   #2
-
0
-

#1 Ladis
No já by jsem to udělal tak, že by jsem si oba časy uložil jako stejný object(Calendar). Potom by jsem je převedl na long a tyto čísla od sebe odečet a zpátky výsledek jednoduše dělením převedl na min, hod, dny dle toho co by jsem potřeboval. Zkoušel jsem to a funguje to.

BTW: Řekl by jsem že máš ještě chybku v argumentu SimpleDateFormat

Nahlásit jako SPAM
IP: 80.92.240.–
Ladis
~ Anonymní uživatel
7 příspěvků
3. 12. 2011   #3
-
0
-

#2 Redby
Diky moc,

nemohl by jsi pls uvest konkretni priklad ... nejak v tom tapu   

(Jaka chybka by mela byt u argumentu  SimpleDateFormat ?? Takhle to funguje...)

Diky

Nahlásit jako SPAM
IP: 213.220.250.–
zlz
~ Anonymní uživatel
634 příspěvků
Nahlásit jako SPAM
IP: 213.211.51.–
zlz
~ Anonymní uživatel
634 příspěvků
3. 12. 2011   #5
-
0
-

Akorát teda ne všechny dny mají 24 hodin  

Nahlásit jako SPAM
IP: 213.211.51.–
Redby0
Návštěvník
3. 12. 2011   #6
-
0
-

#3 Ladis
To velké Y mi vyhazuje exception.

#5 zlz
No uznávám že některé dny jsou hodně dlouhé.....:-)

Nahlásit jako SPAM
IP: 78.136.170.–
Ladis
~ Anonymní uživatel
7 příspěvků
4. 12. 2011   #7
-
0
-

Kdyz to jednoduse shrnu,

je tedy treba prevest nastaveny datum na milisekundy, aktualni datum take,

a pak uz jen spocitat rozdil mezi temito casy a prevest na smysluplny cas(napr. 3dny 20min)?!

Diky

Nahlásit jako SPAM
IP: 213.220.250.–
Redby0
Návštěvník
4. 12. 2011   #8
-
0
-

#7 Ladis
Jojo, přesně tak. Jen nezapomeň na poznámku od zlz. Ne každý den v roce má 24 hodin :-)

Nahlásit jako SPAM
IP: 78.136.179.–
Ladis
~ Anonymní uživatel
7 příspěvků
4. 12. 2011   #9
-
0
-

#8 Redby
JJ, dikes   

Nahlásit jako SPAM
IP: 213.220.250.–
Ladis
~ Anonymní uživatel
7 příspěvků
5. 12. 2011   #10
-
0
-

Tak jsem vyplodil toto:   

import java.util.*;

import java.text.*;

import java.util.Calendar;

public class Datum {

public static void main(String[] args) {
  long setmili, curentmili, resultmili, resultmin, resulthour, resultday;
 
  Date curentDate = new Date();                                                     // vypsani aktualniho data
  SimpleDateFormat df = new SimpleDateFormat("d.M.Y HH:mm");
  curentmili = curentDate.getTime();                                               // prevod na milisekundy
  System.out.println("Dnes je: " + df.format(curentDate) + " hod.");
  System.out.println("V ms to je: " + curentmili + "\n");
 
  Calendar curentDate2 = Calendar.getInstance();                           // nastaveni konkretniho data
  curentDate2.setLenient(false);
  curentDate2.set(2011, 10, 20, 22, 15, 00);
  setmili = curentDate2.getTimeInMillis();                                      // prevod na milisekundy
  System.out.println("Nastaveny datum je: " + df.format(curentDate2.getTime()) + " hod.");
  System.out.println("V ms to je: " + setmili + "\n");
 
  resultmili = (curentmili - setmili);                                                // vypocty casu
  resultmin = (resultmili / 1000 / 60);
  resulthour = (resultmin / 60);
  resultday = (resulthour / 24);
  System.out.println("Rozdil mezi daty je: " + resultmili +              // vypsani rozdilneho casu
   " ms" + ", coz je " + resultmin + " minut" + ", coz je " + resulthour + " hodin" +
   ", coz je " + resultday + " dni.");
    
}

}

Muzete to pls scihnout, jestli to neni vylozene blbost, evt. zda-li se neco standartne dela jinak?!   

Nahlásit jako SPAM
IP: 94.112.247.–
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, 34 hostů

Podobná vlákna

Datum a čas — založil hejnallukas

Dátum/čas — založil mylan4

Cas a datum — založil Grungy

Čas a datum — založil Colpik

Moderátoři diskuze

 

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