/ Forside / Teknologi / Udvikling / Java / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Java
#NavnPoint
molokyle 3688
Klaudi 855
strarup 740
Forvirret 660
gøgeungen 500
Teil 373
Stouenberg 360
vnc 360
pmbruun 341
10  mccracken 320
Dato
Fra : Claus Abildgaard Chr~


Dato : 27-11-01 09:34

Hej,

Jeg vil gerne kunne indtaste en dato fx 22/04/1984, hvorefter programmet
skal kunne udregne hvor mange år der er gået indtil dags dato.

Min første tilgang var at beregne hvormange millisekunder der er mellem
ovennævnte dato og 1/1/1970, og "fodre" Date constructoren med dette.
Men af uvisse årsager kan programmet ikke compile når jeg overskrider
max værdien for int, selvom Date skulle tage en long.

Se evt. nedenstående kode-snip.

import java.util.Date;

public class test
{
public static void main(String[] args)
{
   Date before = new Date(2147483648); // virker hvis tallet er én
mindre..
             // hvorfor tager den int.
   Date after = new Date();

   long whole_days = (after.getTime()-before.getTime())/86400000;
   
   System.out.println(before);
   System.out.println(after);
   System.out.println("Hele dage mellem before og after: " + whole_days);
}
}

Mvh Claus

 
 
Thorbjoern Ravn Ande~ (27-11-2001)
Kommentar
Fra : Thorbjoern Ravn Ande~


Dato : 27-11-01 11:05

Claus Abildgaard Christensen <cac@cs.auc.dk> writes:

> {
>    Date before = new Date(2147483648); // virker hvis tallet er én
> mindre..

Du skal angive over for compileren at det er en long og ikke en int.

Proev at skrive 2147483648L i stedet.
--
Thorbjørn Ravn Andersen
http://unixsnedkeren.dk

Claus Abildgaard Chr~ (27-11-2001)
Kommentar
Fra : Claus Abildgaard Chr~


Dato : 27-11-01 11:27


> Du skal angive over for compileren at det er en long og ikke en int.
>
> Proev at skrive 2147483648L i stedet.

Det virker
Mange tak

/Claus

Thomas Pedersen (27-11-2001)
Kommentar
Fra : Thomas Pedersen


Dato : 27-11-01 22:17

Eller caste til en long:

Date before = new Date((long)2147483648);

\Thomas

"Claus Abildgaard Christensen" <cac@cs.auc.dk> wrote in message
news:3C034FDB.E5F575A3@cs.auc.dk...
> Hej,
>
> Jeg vil gerne kunne indtaste en dato fx 22/04/1984, hvorefter programmet
> skal kunne udregne hvor mange år der er gået indtil dags dato.
>
> Min første tilgang var at beregne hvormange millisekunder der er mellem
> ovennævnte dato og 1/1/1970, og "fodre" Date constructoren med dette.
> Men af uvisse årsager kan programmet ikke compile når jeg overskrider
> max værdien for int, selvom Date skulle tage en long.
>
> Se evt. nedenstående kode-snip.
>
> import java.util.Date;
>
> public class test
> {
> public static void main(String[] args)
> {
> Date before = new Date(2147483648); // virker hvis tallet er én
> mindre..
> // hvorfor tager den int.
> Date after = new Date();
>
> long whole_days = (after.getTime()-before.getTime())/86400000;
>
> System.out.println(before);
> System.out.println(after);
> System.out.println("Hele dage mellem before og after: " + whole_days);
> }
> }
>
> Mvh Claus



Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408527
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste