Avatar billede Bennysørensen Praktikant
15. september 2003 - 02:23 Der er 6 kommentarer og
1 løsning

toString med dato

Jeg har et program, der skal rode med datoer. Da det er en bundet opgave, kan jeg ikke få lov at lave et datoformat som en long, og skal derfor lægge de tre tal sammen. Så vidt jeg husker kan man sammenligne datoer på dén måde.

Jeg kan ikke få lov at bruge toString.

Hvis jeg skriver

public long putTogether() //som en start...
{
      return toString(dag);
}

...får jeg en compilerfejl: toString kan ikke bruges på en int. Hm.
Avatar billede soreno Praktikant
15. september 2003 - 06:52 #1
Ret:
public long putTogether()

Til:
public String putTogether()

toString() returnerere jo (sjovt nok :-) en String.
Avatar billede arne_v Ekspert
15. september 2003 - 07:45 #2
Nu er jeg ikke helt sikker på hvad du vil.

Men du kan konvertere fra Date til antal millisekunder siden 1970 med
getTime mmetode og du kan konvertere den anden vej via en constructor.

Date d = new Date();
long t = d.getTime() + 5000;
Date d2 = new Date(t);
Avatar billede arne_v Ekspert
15. september 2003 - 08:00 #3
Hvis det er mellem Date og String du skal have konverteret så er
der en glimrende SimpleDateFormat klasse.

SimpleDateFormat df = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");
Date d = df.parse("15-09-2003 08:00:00");
String s = df.format(d);
Avatar billede logical Nybegynder
15. september 2003 - 13:39 #4
int i;
String s;

Int to string : String.valueOf(i);
String to int : Integer.parseInt(s);
Avatar billede Bennysørensen Praktikant
16. september 2003 - 01:14 #5
Det jeg sådan set bare skal er at lave en lessThanDate-metode, der tjekker om en given dato er mindre end e.g. dags dato.

Der er gået kludder i mit program: Jeg kan ikke kalde nogetsomhelst.

public class Date
{
    private int dag, maaned, aar;
    String totalstring = "0";
   
    public int setDay(int day)
    {
        dag = day;
    }
    public int setMonth(int month)
    {
        maaned = month;
    }
    public int setYear(int year)
    {
        aar = year;
    }
    public int getDag()
    {
        System.out.println("dag= " + dag);
        return dag;
    }
    public int getMaaned()
    {
        return maaned;
    }
    public int getAar()
    {
        return aar;
    }
    public void putTogether()
    {
        System.out.println("dag");
        totalstring = String.valueOf(aar) + String.valueOf(maaned) + String.valueOf(dag);
        System.out.println(totalstring);
       
    }
}
public class DateTest
{
    public static void main(String args[])
    {
        Date date1 = new Date();
        date1.setDay(12);
        System.out.println(date1.getDag());
        date1.setMonth(11);
        System.out.println(date1.getMaaned());
        date1.setYear(2002);
        System.out.println(date1.getAar());
        date1.putTogether();
    }
}

Jeg får ikke andet end 11, 12, 2002 ud. System.out.println("dag= "+ dag) i getDay() bliver f.eks aldrig udskrevet. Jeg fatter ikke hvorfor. Det her er en af de simpleste klasser, der nogensinde er set!
Hvad helvede er der galt?
Avatar billede arne_v Ekspert
16. september 2003 - 08:05 #6
1)  din set metoder skal være void ikke int

2)  du kan kun have en public class per fil
Avatar billede arne_v Ekspert
16. september 2003 - 08:06 #7
Hvis du bruger java.util.Date, så er det nemat at sammenlige 2 af dem.

< og > virker nemlig !
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester