30. april 2002 - 13:29Der er
15 kommentarer og 2 løsninger
Beregne dage mellem to datoer
Hej
Jeg er TOTALT novice med JSP. Har hidtil programmeret i ASP, men følte det var tid til noget nyt (jeg kører JSP over Tomcat).
Nu skal jeg beregne antal dage mellem to datoer. Det er jo dejligt nemt i ASP, men det er tilsyneladende ikke helt så simpelt i JSP. Hvad skal jeg gøre?
Jeg forestiller mig at det er noget med at downloade en servlet og så bruge den - har i nogle gode råd?
Dette her program virker, det udregner hvor gammel jeg bliver imorgen. /* * DatoTest.java * * Created on 30. april 2002, 13:39 */
import java.util.*;
/** * * @author Reinke * @version */ public class DatoTest {
/** Creates new DatoTest */ public DatoTest() { GregorianCalendar start=new GregorianCalendar(1972,5,1); GregorianCalendar slut=new GregorianCalendar(2002,5,1);
long msek=slut.getTime().getTime()-start.getTime().getTime(); Date dif=new Date(msek);
System.out.println("Antal dage imellem = "+(dif.getTime()/1000/60/60/24)); System.out.println("Antal år imellem = "+(dif.getTime()/1000/60/60/24/365)); }
/** * @param args the command line arguments */ public static void main(String args[]) { new DatoTest(); } }
I JSP ser det sådanne ud: <% GregorianCalendar start=new GregorianCalendar(1972,5,1); GregorianCalendar slut=new GregorianCalendar(2002,5,1);
long msek=slut.getTime().getTime()-start.getTime().getTime(); Date dif=new Date(msek); %> Antal dage imellem = <%=(dif.getTime()/1000/60/60/24))%> Antal år imellem = <%=(dif.getTime()/1000/60/60/24/365))%>
speder2: Hvis du er helt newbie, ville jeg råde dig til at smide Tomcat LANGT væk, der er kort sagt noget tæt på ubrugeligt software, der kun skaber problemmer.
Download Resin fra www.caucho.com istedet, det er utroligt meget bedre.
Det mit program gør er at jeg opretter 2 objecter af typen GregorianCalender, jeg bruge denne type object da vi i vores del af verdenen bruge den gregorianske kalender.
Så udregner jeg antal millisekunder imellem dem, og ud fra dette beregner jeg så antal dage og år.
Ups lille detaljer, denne her er bedre da det ikke er nødvendigt at oprette et Date objekt for at hente antal millisekunder igen.
/* * DatoTest.java * * Created on 30. april 2002, 13:39 */
import java.util.*;
/** * * @author Reinke * @version */ public class DatoTest {
/** Creates new DatoTest */ public DatoTest() { GregorianCalendar start=new GregorianCalendar(1972,5,1); GregorianCalendar slut=new GregorianCalendar(2002,5,1);
long dif=slut.getTime().getTime()-start.getTime().getTime();
System.out.println("Antal dage imellem = "+(dif/1000/60/60/24)); System.out.println("Antal år imellem = "+(dif/1000/60/60/24/365)); }
/** * @param args the command line arguments */ public static void main(String args[]) { new DatoTest(); } }
Disky - tak for hjælpen. Men jeg kan desværre ikke få det til at virke. Det er som om jeg mangler et eller andet for at fungerer. Her er min fejlmeddelelser (det kan jo skyldes, at Tomcat er "ubrugeligt", som du så diplomatisk udtrykker det :-):
org.apache.jasper.JasperException: Unable to compile class for JSPNote: sun.tools.javac.Main has been deprecated.
An error occurred between lines: 8 and 16 in the jsp file: /projektstyring2/test2.jsp
Generated servlet error: C:\Programmer\Apache Tomcat 4.0\work\localhost\_\projektstyring2\test2$jsp.java:59: Class org.apache.jsp.GregorianCalendar not found. GregorianCalendar start=new GregorianCalendar(1972,5,1);
long msek=slut.getTime().getTime()-start.getTime().getTime(); Date dif=new Date(msek); %> Antal dage imellem = <%=(dif.getTime()/1000/60/60/24))%> Antal år imellem = <%=(dif.getTime()/1000/60/60/24/365))%>
Det kan du bande på :-) Jeg er helt tom overfor alt hvad der ikke hedder Microsoft, og der er mange ting i denne her verden, som man selv skal konfigurere. Jeg er klar over, at det giver bedre fleksibilitet, men det er bare svært at komme igang.
Synes godt om
Ny brugerNybegynder
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.