Datum+ 100 Tage

Status
Nicht offen für weitere Antworten.

tomboy

Mitglied
Hi!

Ich hab gröbere Probleme mit dem Datum.

Wie kann ich zum aktuellen Datum

Code:
Calendar cal = GregorianCalendar.getInstance(); 
	DateFormat formater = new SimpleDateFormat("dd.MM.yyyy"); 
	System.out.println( formater.format(cal.getTime()) );

z.B. 100 Tage hinzufügen

also: futuredate= actualdate+100

kann mir da bitte jemand helfen?
 

solnze

Aktives Mitglied
hm ein blick in die api von gregorian calendar zeigt als erste methode

void add(int field, int amount)
Adds the specified (signed) amount of time to the given calendar field, based on the calendar's rules.

wo sein problem?
 

tomboy

Mitglied
ganz starker Tipp!!!

danke!!!

Code:
Calendar cal = GregorianCalendar.getInstance(); 
	
	DateFormat formater = new SimpleDateFormat("dd.MM.yyyy"); 
	System.out.println( formater.format(cal.getTime()) );
	
	cal.add(6,100);
	DateFormat formater2 = new SimpleDateFormat("dd.MM.yyyy"); 
	System.out.println( formater2.format(cal.getTime()) );




31.05.2007
08.09.2007
 

tomboy

Mitglied
ich hab im Moment noch ein großes Problem

ich muss das Datum in der Form "YYYY-MM-DD" zur Verfügung stellen (für sql statement)

also ich bekomm das irgendwie nicht auf die Reihe:

es geht um folgendes:

in der Methode wird eine Zahl (int days) übergeben


ich brauch das aktuelle Datum und dann daraus das Datum in X-days

und das ganze in der Form "YYYY-MM-DD"



Code:
Calendar myCal2 = new GregorianCalendar();                      

	SimpleDateFormat df = new SimpleDateFormat( "yyyy-MM-dd" );
	
	System.out.println( "Date = " + df.format( myCal2 ) );
	
	
	

	myCal2.add(6,100); //100 sind in dem Fall die übergebenen days


	java.util.Date futureDate = myCal2.getTime();
	System.out.println( futureDate );

obiges stimmt leider nicht :(
heutiges Datum und zukünftiges Datum in "YYYY-MM-DD"

Danke für eure Hilfe!
 

madboy

Top Contributor
was stimmt denn nicht?
Dass du vergessen hast, die zweite Ausgabe des Datums auch noch zu formatieren?
Rechnet Calendar falsch?
 

HoaX

Top Contributor
tu dir selbst einen gefallen und ersetze beim add die 6 mit Calendar.DAY oder was auch immer 6 sein mag ...

und was stimmt da nicht? wie schaut denn die ausgabe aus? ich bin grad zu faul das zu testen aber das mit dem simpledateformat sollte genau so hin haun
 

tomboy

Mitglied
java.util.GregorianCalendar[time=1180652912578
Exception in thread "main" java.lang.IllegalArgumentException: Cannot format given Object as a Date
at java.text.DateFormat.format(DateFormat.java:279)
at java.text.Format.format(Format.java:133)
at data.DataAccess.queryProducts(DataAccess.java:218)
at data.DataAccess.main(DataAccess.java:313)
 

tomboy

Mitglied
also sinngemäß sollte es so aussehen:


Code:
public ArrayList queryProducts(String days){
	
	
	
	Calendar myCal2 = new GregorianCalendar();                      
	
	SimpleDateFormat df = new SimpleDateFormat( "yyyy-MM-dd" );
	df.format(myCal2);
	java.util.Date today=myCal2.getTime();
	
	System.out.println(today);
	
	 int zahl=Integer.parseInt(days);

	myCal2.add(Calendar.DAY_OF_YEAR,zahl);

	SimpleDateFormat df2 = new SimpleDateFormat( "yyyy-MM-dd" );
	df2.format(myCal2);
	java.util.Date futureDate = myCal2.getTime();
	
	System.out.println(futureDate);



trotzdem stimmt die Ausgabe nicht:

Exception in thread "main" java.lang.IllegalArgumentException: Cannot format given Object as a Date
at java.text.DateFormat.format(DateFormat.java:279)
at java.text.Format.format(Format.java:133)
at data.DataAccess.queryProducts(DataAccess.java:215)
at data.DataAccess.main(DataAccess.java:314)


Danke!!
 

madboy

Top Contributor
trotzdem stimmt die Ausgabe nicht:

Exception in thread "main" java.lang.IllegalArgumentException: Cannot format given Object as a Date
at java.text.DateFormat.format(DateFormat.java:279)
at java.text.Format.format(Format.java:133)
at data.DataAccess.queryProducts(DataAccess.java:215)
at data.DataAccess.main(DataAccess.java:314)
Das ist ne Fehlermeldung, dass was mit deinem Code nicht stimmt und in dem Sinne keine "Ausgabe" (naja, eigentlich schon ne Ausgabe, aber halt nicht von deinem Programm :wink: )

ersetze
Code:
df.format(myCal2);
durch
Code:
df.format(myCal2.getTime());

Für die Zukunft: schaue dir die Fehlermeldungen an. Da steht sogar die Zeilennummer drin, nämlich bei "at data.DataAccess.queryProducts(DataAccess.java:215) ".
 

tomboy

Mitglied
meinst du so?

da kommt zwar keine Exception mehr, aber die Ausgabe passt auch nicht so, wie ich mir das vorstelle "YYYY-MM-TT"

Code:
public ArrayList queryProducts(String days){
	
	
	
	Calendar myCal2 = new GregorianCalendar();                      
	
	SimpleDateFormat df = new SimpleDateFormat( "yyyy-MM-dd" );
	df.format(myCal2.getTime());
	java.util.Date today=myCal2.getTime();
	
	System.out.println(today);
	
	 int zahl=Integer.parseInt(days);

	myCal2.add(Calendar.DAY_OF_YEAR,zahl);

	SimpleDateFormat df2 = new SimpleDateFormat( "yyyy-MM-dd" );
	df2.format(myCal2.getTime());
	java.util.Date futureDate = myCal2.getTime();
	
	System.out.println(futureDate);


Fri Jun 01 09:57:08 CEST 2007
Sun Sep 09 09:57:08 CEST 2007
 

madboy

Top Contributor
sag mal, was machst denn du?
Das hier war doch so gut wie richtig
Code:
Calendar cal = GregorianCalendar.getInstance(); 
    
   DateFormat formater = new SimpleDateFormat("dd.MM.yyyy"); 
   System.out.println( formater.format(cal.getTime()) ); 
    
   cal.add(6,100); 
   DateFormat formater2 = new SimpleDateFormat("dd.MM.yyyy"); 
   System.out.println( formater2.format(cal.getTime()) );
Danach wurde es immer schlimmer :wink:

so sollte es aber passen
Code:
Calendar cal = GregorianCalendar.getInstance(); 
    
   DateFormat formater = new SimpleDateFormat("yyyy-MM-dd"); 
   System.out.println( formater.format(cal.getTime()) ); 
    
   cal.add(Calendar.DAY_OF_YEAR,100); 
   System.out.println( formater.format(cal.getTime()) );
 

tomboy

Mitglied
ja so kann ichs auch ;)

ich brauchs aber in der Date-Variable gespeichert ... und das funktioniert nicht, weil da Formatter irgendwie nur an String zurückgibt.

Code:
   java.util.Date today=myCal2.getTime();
   
  
   java.util.Date futureDate = myCal2.getTime();

ich brauchs in den beiden Variablen today und futureDate in "YYYY,MM,DD"
 

hupfdule

Top Contributor
Kleines Verständnisproblem.
Date speichert die Daten, nicht die Darstellung. Für die Darstellung ist der DateFormatter zuständig. Du musst den Formatter für die Ausgabe verwenden (was du ja auch willst, sonst macht macht das Format ja keinen Sinn). Im Date Objekt hingegen gibt es keine Formatierung.
 

NTB

Bekanntes Mitglied
Hier wird Dir sooo viel geholfen, und keiner hinterfragt, ob Dein Ansatz überhaupt richtig ist :)
Du willst ein Datum (Date) in eine Datenbank einfügen, richtig?
Das musst Du nicht formatieren.
Das setzt Du einfach in ein PreparedStatement ein und fertig :)
 

tomboy

Mitglied
ja das weiß ich eh..
Date speichert die Daten, nicht die Darstellung. Für die Darstellung ist der DateFormatter zuständig. Du musst den Formatter für die Ausgabe verwenden (was du ja auch willst, sonst macht macht das Format ja keinen Sinn). Im Date Objekt hingegen gibt es keine Formatierung.
aber das hilft mir leider bei der Umsetzung irgendwie nicht weiter..

tut mir leid :(


aha...ok..ich schau mir das mal an...

naja, einfügen nicht!

ich brauch

Code:
java.util.Date today=myCal2.getTime();
   
 
   java.util.Date futureDate = myCal2.getTime();


für die sql-Abfrage:
in der Datenbank "products" sind PRodukte mit einem Ablaufdatum gespeichert!
Ich soll nun jene Produkte ausgeben können, die in X Tagen ablaufen (Anzahl Tage wird der Methode übergeben)!

Und dann berechne ich mir das aktuelle Datum und das Datum in X Tagen und vergleiche es mit dem Ablaufdatum expirydata , alles klar?

Code:
ResultSet rs = st.executeQuery("SELECT productid, producttype from products WHERE expirydata BETWEEN " + " \" " + today + "\" AND \" "+ futureDate + "\"");
 

SnooP

Top Contributor
richtig... bei den meisten DBs wird man wohl bei dem SQL-Typ Date einfach + 100 machen können und feddich is ;)
 

tomboy

Mitglied
du meinst so oder?

Code:
ResultSet rs = st.executeQuery("SELECT productid, producttype from products WHERE expirydata < expirydata + 100");

das hab ich vorher schon alles ausprobiert!
da kommt leider ein falsches Ergebnis raus!
der werden einfach alle Produkte ausgegeben... :(
 

Leroy42

Top Contributor
tomboy hat gesagt.:
Code:
...WHERE expirydata < expirydata + 100");

Kein Wunder das immer alles ausgegeben wird.

Lies dir die Bedingung doch nochmal durch, da steht praktisch

where x < x+100

und jetzt rate mal für welche x zutrifft, daß

x<x+100

ist?

Na? :wink: Dämmerts?

Ich vermute mal, du willst sowas wie

where expiredate < today() + 100

oder was auch immer!
 

tomboy

Mitglied
ja das hab ich auch schon alles probiert:

Code:
"SELECT productid, producttype from products WHERE expirydata < SYSDATE() + '" + days +"'");

Sysdate kennt er, aber ausgeben tut er wieder alle produkte!
und die Abfrage müsst ja jetzt echt passen :autsch:
 

tomboy

Mitglied
ok danke, der Tipp war gut, habs jetzt mit folgendem versucht:

Code:
	"SELECT productid, producttype, designator from products WHERE expirydata BETWEEN CURDATE() AND CURDATE() + '" + days + "'");


zur Info: so sieht die Tabelle products aus:

productid | producttype | designator | value | expirydata |
+---------------+---------------+---------------+---------------+---------------+
| 1 | 3 | n.a. | 4323 | 2009-05-28 |
| 2 | 7 | Gehaltskonto Extra+| 200 | 2031-12-31 |
| 3 | 1 | Ansparen Auto | 16342 | 2007-10-23 |
| 4 | 1 | Kinder | 3423 | 2007-06-30



wenn ich jetzt days=200 übergib, gibt er leider folgendes aus:

--------------------------
4
1
Kinder

dabei müsste er ja rein rechnerisch product mit id 3 auch ausgeben!


erst bei Eingabe days= 430 gibt er aus:

--------------------------
3
1
Ansparen Auto
--------------------------
4
1
Kinder

strange oder?

aber trotzdem danke! wenigstens keine Fehlermeldung und er gibt nicht mehr alle Produkte aus ;-)
 

_tiGGa_

Mitglied
hmm, ich glaub du hast den tipp doch nicht so angenommen, wie ich ihn meinte ^^

versuch mal folgendes:

SELECT productid, producttype, designator from products WHERE expirydata < DATE_ADD(CURDATE(), INTERVAL 200 DAY);

so müsste es eigentlich gehen,
kann es nur nicht leider testen

greetz
tigga :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Wieviele Tage seit dem Datum vergangen sind Java Basics - Anfänger-Themen 5
B Errechnen(Jahre Monate Tage)von einem Datum zu einem anderen Java Basics - Anfänger-Themen 3
S zu einem Datum Tage addieren Java Basics - Anfänger-Themen 2
J Datum, Tage herausfinden Java Basics - Anfänger-Themen 2
C Darstellung von Datum - Codes richtig? Java Basics - Anfänger-Themen 2
L Datum - Monat und Jahr werden falsch angezeigt Java Basics - Anfänger-Themen 4
T Datum als Variable wert Java Basics - Anfänger-Themen 4
T Datum in die als Variabelwert Java Basics - Anfänger-Themen 5
B Beliebiger String gegeben Suche Datum in String Java Basics - Anfänger-Themen 6
MiMa Ungültiges Datum wird nicht erkannt ?? Java Basics - Anfänger-Themen 6
S Algorithmus entwicklen, der zu einem gegebenen Datum die Jahreszeit ermittelt Java Basics - Anfänger-Themen 13
berserkerdq2 Wie datum im default format speichern? Java Basics - Anfänger-Themen 5
W Methode, die mit einem Datum arbeitet? Java Basics - Anfänger-Themen 22
K Datum einlesen und Tag, Monat und Jahr einzeln ausgeben Java Basics - Anfänger-Themen 1
K Datum einlesen und Tag, Monat und Jahr einzeln ausgeben Java Basics - Anfänger-Themen 1
J Datum ermitteln ? Java Basics - Anfänger-Themen 14
KogoroMori21 Java Datum Differenz (kleiner Fehler) Java Basics - Anfänger-Themen 10
J JDatePicker: Datum wird nicht in Textfeld übernommen Java Basics - Anfänger-Themen 5
N Zwei Daten (Datum) miteinander vergleichen, abspeichern, laden Java Basics - Anfänger-Themen 4
N Ein Datum berechnen Java Basics - Anfänger-Themen 3
T Datum und Uhrzeit Java Basics - Anfänger-Themen 4
B Liste von Tagen generieren ab einem bestimmten Datum und Endedatum Java Basics - Anfänger-Themen 4
B Datum in dieser Range SQL? Java Basics - Anfänger-Themen 3
F Ein Datum (int) durch Methode als String formatieren Java Basics - Anfänger-Themen 2
D Kontoauszüge von bestimmtem Datum Java Basics - Anfänger-Themen 35
B Termine (Datum erstellen), Abhängig von Intervallen Java Basics - Anfänger-Themen 0
A Nächstes Datum ausgeben, if-Schleife unklar Java Basics - Anfänger-Themen 6
J Best Practice Datum Differenz aus zwei Strings ermitteln Java Basics - Anfänger-Themen 8
Bluedaishi Datum in Jtextarea füllen Java Basics - Anfänger-Themen 5
E 2 Probleme - Datum & private finale Variablen Java Basics - Anfänger-Themen 5
S Datum umformatieren Java Basics - Anfänger-Themen 2
D Datum aus Swing in MySQL DB speichern Java Basics - Anfänger-Themen 22
F LimitedQueue auf Datum prüfen Java Basics - Anfänger-Themen 6
T Datum wird auf der Konsole richtig ausgegeben, aber im Textarea kommt ERROR Java Basics - Anfänger-Themen 8
D Projekte + Datum + löschen Java Basics - Anfänger-Themen 11
M Datum serialisieren Java Basics - Anfänger-Themen 1
S Datum einlesen Java Basics - Anfänger-Themen 1
D Aktuelles Datum wird falsch ausgegeben Java Basics - Anfänger-Themen 2
K Methoden Datum parsen Java Basics - Anfänger-Themen 16
C JList Einträge nach Datum sortieren Java Basics - Anfänger-Themen 3
MiMa Jüngstes Datum ermitteln Java Basics - Anfänger-Themen 4
2 Uhrzeit und Datum aktualisieren Java Basics - Anfänger-Themen 12
R Problem beim Wochenplan (Datum,Wochentag) Java Basics - Anfänger-Themen 30
O Datum-Werte gruppieren Java Basics - Anfänger-Themen 6
J Java Datum- Zeit Differenz bilden! Java Basics - Anfänger-Themen 4
M Methoden Aus Timestamp das Datum berechnen Java Basics - Anfänger-Themen 3
B Kontoauszug mit Datum ausgeben Java Basics - Anfänger-Themen 4
M Datum in Millisekunden allerdings ohne Uhrzeit Java Basics - Anfänger-Themen 4
DeVolt Java8 Paket Time: Datum prüfen / try-catch Java Basics - Anfänger-Themen 1
T Datum mit einem Datums-Bereich vergleichen Java Basics - Anfänger-Themen 10
J Datum und Uhrzeit in Datenbank falsch hinterlegt Java Basics - Anfänger-Themen 13
L Aus Datum Millisekunden ermitteln ohne Zeitzonen-Berücksichtigung Java Basics - Anfänger-Themen 6
P Liste nach Datum sortieren Java Basics - Anfänger-Themen 7
B tageszahl in Datum umrechnen Java Basics - Anfänger-Themen 6
F Datum Differenz berechnen Java Basics - Anfänger-Themen 7
B String in Datum Java Basics - Anfänger-Themen 3
M CompareTo soll Datum sortieren Java Basics - Anfänger-Themen 2
K Daten (im Sinne von Datum) aus Webseiten extrahieren Java Basics - Anfänger-Themen 6
AssELAss String in Datum umwandeln Java Basics - Anfänger-Themen 4
I Datum und Uhrzeitpattern von Locale Java Basics - Anfänger-Themen 7
H Wie wandel ich ein Datum in eine Zeichenkette um mit StringBuffer? Java Basics - Anfänger-Themen 3
I Datum ohne GregorianCalendar und co. Java Basics - Anfänger-Themen 3
A Datum zwischen zwei Daten berechnen und in Tagen anzeigen Java Basics - Anfänger-Themen 4
N Datum abgleichen und Frage zum Layout Java Basics - Anfänger-Themen 3
D Wochentag für eingegebenes Datum bestimmen anhand von Formel Java Basics - Anfänger-Themen 2
E Zeit zum bestimmten Datum in millisekunden berechnen Java Basics - Anfänger-Themen 5
M Aktuelles Datum in MySQL speichern Java Basics - Anfänger-Themen 11
P Datum umwandeln Java Basics - Anfänger-Themen 5
A Datum formatieren Java Basics - Anfänger-Themen 6
K Samstag einer Woche anhand eines Datum Java Basics - Anfänger-Themen 3
J Mit Datum rechnen Java Basics - Anfänger-Themen 11
B Datum ändern? Java Basics - Anfänger-Themen 8
Tally Methoden BlueJ - Datum als Kalendertag int - tagImJahr Java Basics - Anfänger-Themen 6
K wie Datum in JTable anders anzeigen lassen Java Basics - Anfänger-Themen 2
B Differenz von 2 Datum Java Basics - Anfänger-Themen 8
MiMa String Datum ermitteln Java Basics - Anfänger-Themen 9
D Hilfe beim SDF Datum Ausgabe Java Basics - Anfänger-Themen 20
A Plausibles Datum Java Basics - Anfänger-Themen 21
A Aktuelles Datum einfügen.. Java Basics - Anfänger-Themen 4
K Datum und Uhrzeit als Date Objekt Java Basics - Anfänger-Themen 10
K Java Datum berechnen Java Basics - Anfänger-Themen 13
L Datum probleme Java Basics - Anfänger-Themen 6
S fehler beim datum parsen Java Basics - Anfänger-Themen 6
S Schleife Datum Java Basics - Anfänger-Themen 11
S Datum ändern bzw. abziehen Java Basics - Anfänger-Themen 3
M String in Datum umwandeln mit SimpleDateFormat Java Basics - Anfänger-Themen 3
E Datentypen Unvollständiges Datum parsen Java Basics - Anfänger-Themen 8
T Heutiges datum OHNE Calendar? Java Basics - Anfänger-Themen 9
K Wie Datum um einen Tag erhöhen? Java Basics - Anfänger-Themen 4
A Datum Prüfen Java Basics - Anfänger-Themen 3
B Wie aus einem Datum String eine Timestamp erzeugen Java Basics - Anfänger-Themen 6
E Datum und Uhrzeit von UTC in MET umrechnen Java Basics - Anfänger-Themen 6
E Methoden Datum , Uhrzeit, Nachricht in txt Datei schreiben Java Basics - Anfänger-Themen 3
E Eigene class datum Java Basics - Anfänger-Themen 2
A Datum formatieren Java Basics - Anfänger-Themen 8
E Algorithmen und Programmierung - Datum und Zeit ausgeben? Java Basics - Anfänger-Themen 8
M Datum aus einer Textdatei holen Java Basics - Anfänger-Themen 9
M Datum und Stunde als String ausgeben Java Basics - Anfänger-Themen 15
N Datentypen Datum konvertieren mit kurzer Monatsangabe Java Basics - Anfänger-Themen 3
U Java Datum vergleichen - Sommerzeitproblem Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben