|
| 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
| |
|
|