Hilfe beim SDF Datum Ausgabe

David1982

Mitglied
Hallo bekomme es nicht hin das mein Datum so angezeigt wird wie ich es will also MM/dd/yy
kann mir einer helfen ?

Java:
e de.uniwue.jpp.accountbook.model;

import java.text.SimpleDateFormat;
import java.util.Calendar;

public class Entry {
	// Die Kategorie, zu der der Eintrag zugeordnet wird.
	Category category;
	// Das Konto, dem der Eintrag zugeordnet wird.
	Account account;
	// Die Beschreibung des Eintrags.
	String description;
	// Das Datum, an dem die Position erzeugt wurde.
	Calendar timestamp;
	// Der Wert des Eintrages in Euro.
	float value;
	// Initialisiert einen Eintrag.
	public Entry(Category category, Account account, Calendar timestamp,
			String description, float value) {
		this.category = category;
		this.account = account;
		this.timestamp = timestamp;
		this.value = value;
	}

	// Liefert das Datum, an dem die Position erzeugt wurde.
	public Calendar getTimestamp() {
		return timestamp;
	}

	// Liefert die Beschreibung des Eintrags.
	public String getDescription() {
		return description;
	}

	// Liefert den Wert des Eintrags.
	public float getValue() {
		return value;
	}

	// Liefert die Kategorie, der der Eintrag zugeordnet ist.
	public Category getCategory() {
		return category;
	}

	// Liefert den Account, dem der Eintrag zugeordnet ist.
	public Account getAccount() {
		return account;
	}


	public boolean equals(Object o) {
		if(o instanceof Entry) {
			Entry eo = (Entry)o;
			if(eo.getDescription().equals(description) && 
			   eo.getValue() == value && 
				eo.getTimestamp().getTime().getYear() == timestamp.getTime().getYear() &&
				eo.getTimestamp().getTime().getMonth() == timestamp.getTime().getMonth() && 
				eo.getTimestamp().getTime().getDay() == timestamp.getTime().getDay()) {
				return true;
			}
		}
		return false;
	}

	
	public int hashCode() {
		return (int)(description.hashCode() + ((Float)(value)).hashCode()) + timestamp.hashCode();
	}

	public String toString() {
		String result = "[";
		SimpleDateFormat formatter, FORMATTER;
		formatter = new SimpleDateFormat("MM/dd/yy hh:mm a");
		//sdf.applyPattern("MM/dd/yy hh:mm aaa");
		result += formatter.format(timestamp.getTime()) +  " - ";
		result += ((Float)value).toString() + " - ";
		result += description + "]";
		return result;
	}
	
	
}
 
Zuletzt bearbeitet von einem Moderator:
T

Tomate_Salat

Gast
1. Bin am verzweifeln => kein guter Titel
2.
icon4.gif
Java™ Quelltext ist bitte in
Java:
[/B]-Tags zu schreiben:[/SIZE] [noparse][code=Java]hier Java Code einfügen
[/noparse]

3. Schau dir mal SimpleDateFormat (Java Platform SE 7 ) an
4. Schau dir auch mal das hier an: http://www.java-forum.org/forum-faq-beitraege/7407-man-fragen-richtig-stellt.html
 

David1982

Mitglied
Stimmt woll bin nur seit gestern 18 dort dran.

Und mit dem Format selber habe ich kein Problemm

public String toString() {
String result = "[";
SimpleDateFormat formatter, FORMATTER;
formatter = new SimpleDateFormat("MM/dd/yy hh:mm a");
//sdf.applyPattern("MM/dd/yy hh:mm aaa");
result += formatter.format(timestamp.getTime()) + " - ";
result += ((Float)value).toString() + " - ";
result += description + "]";
return result;
}


Finde nicht wo das datum her kommt und alle änderungen im SDF gehen nicht bekomme immer die gleiche ausgabe.

Gruss David
 
T

Tomate_Salat

Gast
Stimmt, haste geschrieben. Montags morgens ist mir der unformierte Text zuviel und ich bin davon ausgegangen, dass du garnicht wüsstest, wie man ein Datum formatiert.
Dennoch gilt der dezente Hinweis:
icon4.gif
Java™ Quelltext ist bitte in
Java:
[/B]-Tags zu schreiben:[/SIZE] [noparse][code=Java]hier Java Code einfügen
[/noparse]
;-) [ich werde dich jedes mal wenn dus vergisst wieder drauf hinweisen ;-). Hab ein Browserplugin extra dafür geschrieben, macht mir also keine mühe ;-)]

Dann kann man soetwas auch besser lesen:
Java:
public String toString() {
String result = "[";
SimpleDateFormat formatter, FORMATTER;
formatter = new SimpleDateFormat("MM/dd/yy hh:mm a");
//sdf.applyPattern("MM/dd/yy hh:mm aaa");
result += formatter.format(timestamp.getTime()) + " - ";
result += ((Float)value).toString() + " - ";
result += description + "]";
return result;
}

Dann zeig mal deinen Aufruf und die Ausgabe, dass nicht angezeigt wird. Ach ja, hast du das Datum überhaupt gesetzt?
 

David1982

Mitglied
Werde es ab jetzt beachten :)

Hier die Ausgabe

[junit] junit.framework.AssertionFailedError:
[junit] Expected: "[09/17/12 09:58 AM - 33.67 - null]"
[junit] got: "[22.05.2012 - 33.67 - A checking account.]"

Hier das ganze :

Java:
package de.uniwue.jpp.accountbook.model;

import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class Entry {
	// Die Kategorie, zu der der Eintrag zugeordnet wird.
	Category category;
	// Das Konto, dem der Eintrag zugeordnet wird.
	Account account;
	// Die Beschreibung des Eintrags.
	String description;
	// Das Datum, an dem die Position erzeugt wurde.
	Calendar timestamp;
	// Der Wert des Eintrages in Euro.
	float value;
	// Initialisiert einen Eintrag.
	public Entry(Category category, Account account, Calendar timestamp,
			String description, float value) {
		this.category = category;
		this.account = account;
		this.timestamp = timestamp;
		this.value = value;
	}

	// Liefert das Datum, an dem die Position erzeugt wurde.
	public Calendar getTimestamp() {
		return timestamp;
	}

	// Liefert die Beschreibung des Eintrags.
	public String getDescription() {
		return description;
	}

	// Liefert den Wert des Eintrags.
	public float getValue() {
		return value;
	}

	// Liefert die Kategorie, der der Eintrag zugeordnet ist.
	public Category getCategory() {
		return category;
	}

	// Liefert den Account, dem der Eintrag zugeordnet ist.
	public Account getAccount() {
		return account;
	}


	public boolean equals(Object o) {
		if(o instanceof Entry) {
			Entry eo = (Entry)o;
			if(eo.getDescription().equals(description) && 
			   eo.getValue() == value && 
				eo.getTimestamp().getTime().getYear() == timestamp.getTime().getYear() &&
				eo.getTimestamp().getTime().getMonth() == timestamp.getTime().getMonth() && 
				eo.getTimestamp().getTime().getDay() == timestamp.getTime().getDay()) {
				return true;
			}
		}
		return false;
	}

	
	public int hashCode() {
		return (int)(description.hashCode() + ((Float)(value)).hashCode()) + timestamp.hashCode();
	}

	public String toString() {
		String result = "[";
		Date date = new Date();
		SimpleDateFormat sdf = new SimpleDateFormat("MM/dd/yy hh:mm a");
		String formattedDate = sdf.format(date);
		result += formattedDate +  " - ";
		result += ((Float)value).toString() + " - ";
		result += description + "]";
		return result;
	}
}
 
Zuletzt bearbeitet:
T

Tomate_Salat

Gast
Ok, schonmal besser ;-).

Und wie schaut der zugehörige junit-test aus? Das was du gepostet hast, ist ja nur die Klasse.

Btw: du musst die description auch setzen, ich nehme an das soll im Konstruktor geschehen. Das wurde in dem Fall aber dann vergessen.
 

David1982

Mitglied
So das ist der ganze test........

[echo] compiling functional tests...
[javac] Compiling 7 source files to /tmp/reactor-24f78b52-8a6a-44ee-bbf3-82444bd830d2/build/classes
[javac] Note: /tmp/reactor-24f78b52-8a6a-44ee-bbf3-82444bd830d2/src/tests/required/AccountBookTest.java uses unchecked or unsafe operations.
[javac] Note: Recompile with -Xlint:unchecked for details.
[echo] executing functional tests..
[junit] Running tests.required.AccountBookTest
[junit] Testsuite: tests.required.AccountBookTest
[junit] Tests run: 18, Failures: 5, Errors: 2, Time elapsed: 0.282 sec
[junit] Tests run: 18, Failures: 5, Errors: 2, Time elapsed: 0.282 sec
[junit]
[junit] Testcase: testFindAllIncomeCategoriesWithCategoryTreeDepth4 took 0.053 sec
[junit] FAILED
[junit] After adding a category that is the root of a tree with a depth of 4 and a width of 2, AccountBook.findAllIncomeCategories() shouldreturn a collection of size <31>.
[junit] Expected: <31>
[junit] got: <1>
[junit]
[junit] junit.framework.AssertionFailedError: After adding a category that is the root of a tree with a depth of 4 and a width of 2, AccountBook.findAllIncomeCategories() shouldreturn a collection of size <31>.
[junit] Expected: <31>
[junit] got: <1>
[junit]
[junit] at tests.required.AccountBookTest.testFindAllIncomeCategoriesWithCategoryTreeDepth4(AccountBookTest.java:241)
[junit]
[junit] Testcase: testFindAllIncomeCategoriesOnlyBaseCategories took 0.001 sec
[junit] Testcase: testFindExpenseCategoryByName took 0.001 sec
[junit] FAILED
[junit] After adding:
[junit] c1
[junit] \--c12
[junit] could not find path to c12.
[junit] Expected: <1>
[junit] got: <0>
[junit]
[junit] junit.framework.AssertionFailedError: After adding:
[junit] c1
[junit] \--c12
[junit] could not find path to c12.
[junit] Expected: <1>
[junit] got: <0>
[junit]
[junit] at tests.required.AccountBookTest.testFindExpenseCategoryByName(AccountBookTest.java:296)
[junit]
[junit] Testcase: testFindIncomeCategoryByName took 0.001 sec
[junit] FAILED
[junit] After adding:
[junit] c1
[junit] \--c12
[junit] could not find path to c12.
[junit] Expected: <1>
[junit] got: <0>
[junit]
[junit] junit.framework.AssertionFailedError: After adding:
[junit] c1
[junit] \--c12
[junit] could not find path to c12.
[junit] Expected: <1>
[junit] got: <0>
[junit]
[junit] at tests.required.AccountBookTest.testFindIncomeCategoryByName(AccountBookTest.java:346)
[junit]
[junit] Testcase: testFilterEntries took 0.163 sec
[junit] Caused an ERROR
[junit] null
[junit] java.lang.NullPointerException
[junit] at de.uniwue.jpp.accountbook.model.Entry.hashCode(Entry.java:69)
[junit] at java.util.HashMap.getEntry(HashMap.java:361)
[junit] at java.util.HashMap.containsKey(HashMap.java:352)
[junit] at java.util.HashSet.contains(HashSet.java:201)
[junit] at de.uniwue.jpp.accountbook.model.AccountBook.addEntry(AccountBook.java:76)
[junit] at tests.required.AccountBookTest.testFilterEntries(AccountBookTest.java:384)
[junit]
[junit] Testcase: testConstructor took 0.001 sec
[junit] Testcase: testAddAccounts took 0 sec
[junit] Testcase: testAddIncomeCategory took 0.007 sec
[junit] Testcase: testAddExpenseCategory took 0.001 sec
[junit] Testcase: testAddEntry took 0 sec
[junit] Caused an ERROR
[junit] null
[junit] java.lang.NullPointerException
[junit] at de.uniwue.jpp.accountbook.model.Entry.hashCode(Entry.java:69)
[junit] at java.util.HashMap.getEntry(HashMap.java:361)
[junit] at java.util.HashMap.containsKey(HashMap.java:352)
[junit] at java.util.HashSet.contains(HashSet.java:201)
[junit] at de.uniwue.jpp.accountbook.model.AccountBook.addEntry(AccountBook.java:76)
[junit] at tests.required.AccountBookTest.testAddEntry(AccountBookTest.java:120)
[junit]
[junit] Testcase: testGetAccountsDoesNotExposeObjectInternals took 0 sec
[junit] Testcase: testGetEntriesDoesNotExposeObjectInternals took 0.001 sec
[junit] Testcase: testGetIncomesDoesNotExposeObjectInternals took 0 sec
[junit] Testcase: testGetExpensesDoesNotExposeObjectInternals took 0.001 sec
[junit] Testcase: testFindAccountByNameNotFound took 0.005 sec
[junit] FAILED
[junit] Expected exception: de.uniwue.jpp.accountbook.model.AccountNotFoundException
[junit] junit.framework.AssertionFailedError: Expected exception: de.uniwue.jpp.accountbook.model.AccountNotFoundException
[junit]
[junit] Testcase: testFindAccountByName took 0.001 sec
[junit] Testcase: testFindAllExpenseCategoriesOnlyBaseCategories took 0.001 sec
[junit] Testcase: testFindAllExpenseCategoriesWithCategoryTreeDepth4 took 0.001 sec
[junit] FAILED
[junit] After adding a category that is the root of a tree with a depth of 4 and a width of 2, AccountBook.findAllExpenseCategories() shouldreturn a collection of size <31>.
[junit] Expected: <31>
[junit] got: <1>
[junit]
[junit] junit.framework.AssertionFailedError: After adding a category that is the root of a tree with a depth of 4 and a width of 2, AccountBook.findAllExpenseCategories() shouldreturn a collection of size <31>.
[junit] Expected: <31>
[junit] got: <1>
[junit]
[junit] at tests.required.AccountBookTest.testFindAllExpenseCategoriesWithCategoryTreeDepth4(AccountBookTest.java:225)
[junit]
[junit] TEST tests.required.AccountBookTest FAILED
[junit] Running tests.required.AccountTest
[junit] Testsuite: tests.required.AccountTest
[junit] Tests run: 4, Failures: 0, Errors: 0, Time elapsed: 0.002 sec
[junit] Tests run: 4, Failures: 0, Errors: 0, Time elapsed: 0.002 sec
[junit]
[junit] Testcase: testConstructorNameNull took 0 sec
[junit] Testcase: testConstructorNameEmpty took 0 sec
[junit] Testcase: testGetter took 0.001 sec
[junit] Testcase: testToString took 0 sec
[junit] Running tests.required.CategoryTest
[junit] Testsuite: tests.required.CategoryTest
[junit] Tests run: 15, Failures: 10, Errors: 0, Time elapsed: 0.03 sec
[junit] Tests run: 15, Failures: 10, Errors: 0, Time elapsed: 0.03 sec
[junit]
[junit] Testcase: testGetter took 0.001 sec
[junit] Testcase: testToString took 0 sec
[junit] Testcase: testEqualsAndHashCode took 0.001 sec
[junit] Testcase: testConstructorUuidNameDescParentUuidNotNull took 0 sec
[junit] Testcase: testConstructorUuidNameDescParentNameNull took 0.001 sec
[junit] FAILED
[junit] Expected exception: java.lang.NullPointerException
[junit] junit.framework.AssertionFailedError: Expected exception: java.lang.NullPointerException
[junit]
[junit] Testcase: testConstructorUuidNameDescParentDescNull took 0 sec
[junit] FAILED
[junit] Expected exception: java.lang.NullPointerException
[junit] junit.framework.AssertionFailedError: Expected exception: java.lang.NullPointerException
[junit]
[junit] Testcase: testConstructorUUidNameDescParentNameEmpty took 0 sec
[junit] FAILED
[junit] Expected exception: de.uniwue.jpp.accountbook.EmptyStringException
[junit] junit.framework.AssertionFailedError: Expected exception: de.uniwue.jpp.accountbook.EmptyStringException
[junit]
[junit] Testcase: testConstructorUUidNameDescParentDescEmpty took 0.001 sec
[junit] FAILED
[junit] Expected exception: de.uniwue.jpp.accountbook.EmptyStringException
[junit] junit.framework.AssertionFailedError: Expected exception: de.uniwue.jpp.accountbook.EmptyStringException
[junit]
[junit] Testcase: testConstructorNameDescParentNameNull took 0 sec
[junit] FAILED
[junit] Expected exception: java.lang.NullPointerException
[junit] junit.framework.AssertionFailedError: Expected exception: java.lang.NullPointerException
[junit]
[junit] Testcase: testConstructorNameDescParentDescNull took 0 sec
[junit] FAILED
[junit] Expected exception: java.lang.NullPointerException
[junit] junit.framework.AssertionFailedError: Expected exception: java.lang.NullPointerException
[junit]
[junit] Testcase: testConstructorNameDescParentNameEmpty took 0.001 sec
[junit] FAILED
[junit] Expected exception: de.uniwue.jpp.accountbook.EmptyStringException
[junit] junit.framework.AssertionFailedError: Expected exception: de.uniwue.jpp.accountbook.EmptyStringException
[junit]
[junit] Testcase: testConstructorNameDescParentDescEmpty took 0 sec
[junit] FAILED
[junit] Expected exception: de.uniwue.jpp.accountbook.EmptyStringException
[junit] junit.framework.AssertionFailedError: Expected exception: de.uniwue.jpp.accountbook.EmptyStringException
[junit]
[junit] Testcase: testAddCategory took 0 sec
[junit] FAILED
[junit] After adding a subcategory, the subcategory should have the category as parent.
[junit] Expected: null
[junit] got: <[Lebensmittel (19241a2a-96bd-498e-928b-0b4b18eda301)]>
[junit]
[junit] junit.framework.AssertionFailedError: After adding a subcategory, the subcategory should have the category as parent.
[junit] Expected: null
[junit] got: <[Lebensmittel (19241a2a-96bd-498e-928b-0b4b18eda301)]>
[junit]
[junit] at tests.required.CategoryTest.testAddCategory(CategoryTest.java:115)
[junit]
[junit] Testcase: testGetCategories took 0.001 sec
[junit] FAILED
[junit] There should be no subcategories after instantiation. expected:<0> but was:<101>
[junit] junit.framework.AssertionFailedError: There should be no subcategories after instantiation. expected:<0> but was:<101>
[junit] at tests.required.CategoryTest.testGetCategories(CategoryTest.java:126)
[junit]
[junit] Testcase: testRandomUUID took 0.014 sec
[junit] TEST tests.required.CategoryTest FAILED
[junit] Running tests.required.EntryTest
[junit] Testsuite: tests.required.EntryTest
[junit] Tests run: 8, Failures: 7, Errors: 1, Time elapsed: 0.027 sec
[junit] Tests run: 8, Failures: 7, Errors: 1, Time elapsed: 0.027 sec
[junit]
[junit] Testcase: testGetter took 0.001 sec
[junit] FAILED
[junit] Entry.getDescription() did not give correct value.
[junit] Expected: "A checking account."
[junit] got: null
[junit]
[junit] junit.framework.AssertionFailedError: Entry.getDescription() did not give correct value.
[junit] Expected: "A checking account."
[junit] got: null
[junit]
[junit] at tests.required.EntryTest.testGetter(EntryTest.java:76)
[junit]
[junit] Testcase: testToString took 0.002 sec
[junit] FAILED
[junit]
[junit] Expected: "[09/17/12 10:31 AM - 33.67 - null]"
[junit] got: "[22.05.2012 - 33.67 - A checking account.]"
[junit]
[junit] junit.framework.AssertionFailedError:
[junit] Expected: "[09/17/12 10:31 AM - 33.67 - null]"
[junit] got: "[22.05.2012 - 33.67 - A checking account.]"
[junit]
[junit] at tests.required.EntryTest.testToString(EntryTest.java:124)
[junit]
[junit] Testcase: testEqualsAndHashCode took 0 sec
[junit] Caused an ERROR
[junit] null
[junit] java.lang.NullPointerException
[junit] at de.uniwue.jpp.accountbook.model.Entry.equals(Entry.java:56)
[junit] at org.hamcrest.core.IsEqual.areEqual(IsEqual.java:38)
[junit] at org.hamcrest.core.IsEqual.matches(IsEqual.java:25)
[junit] at tests.required.EntryTest.testEqualsAndHashCode(EntryTest.java:85)
[junit]
[junit] Testcase: testConstructorTimestampNull took 0.001 sec
[junit] FAILED
[junit] Expected exception: java.lang.NullPointerException
[junit] junit.framework.AssertionFailedError: Expected exception: java.lang.NullPointerException
[junit]
[junit] Testcase: testConstructorDescriptionNull took 0 sec
[junit] FAILED
[junit] Expected exception: java.lang.NullPointerException
[junit] junit.framework.AssertionFailedError: Expected exception: java.lang.NullPointerException
[junit]
[junit] Testcase: testConstructorDescriptionEmpty took 0 sec
[junit] FAILED
[junit] Expected exception: de.uniwue.jpp.accountbook.EmptyStringException
[junit] junit.framework.AssertionFailedError: Expected exception: de.uniwue.jpp.accountbook.EmptyStringException
[junit]
[junit] Testcase: testConstructorCategoryNull took 0 sec
[junit] FAILED
[junit] Expected exception: java.lang.NullPointerException
[junit] junit.framework.AssertionFailedError: Expected exception: java.lang.NullPointerException
[junit]
[junit] Testcase: testConstructorAccountNull took 0 sec
[junit] FAILED
[junit] Expected exception: java.lang.NullPointerException
[junit] junit.framework.AssertionFailedError: Expected exception: java.lang.NullPointerException
[junit]
[junit] TEST tests.required.EntryTest FAILED
[junit] Running tests.required.InCategoryFilterTest
[junit] Testsuite: tests.required.InCategoryFilterTest
[junit] Tests run: 5, Failures: 0, Errors: 5, Time elapsed: 0.004 sec
[junit] Tests run: 5, Failures: 0, Errors: 5, Time elapsed: 0.004 sec
[junit]
[junit] Testcase: testEmpty took 0 sec
[junit] Caused an ERROR
[junit] null
[junit] java.lang.NullPointerException
[junit] at de.uniwue.jpp.accountbook.filter.InCategoryFilter.<init>(InCategoryFilter.java:11)
[junit] at tests.required.InCategoryFilterTest.setup(InCategoryFilterTest.java:44)
[junit]
[junit] Testcase: testSingleEntry took 0 sec
[junit] Caused an ERROR
[junit] null
[junit] java.lang.NullPointerException
[junit] at de.uniwue.jpp.accountbook.filter.InCategoryFilter.<init>(InCategoryFilter.java:11)
[junit] at tests.required.InCategoryFilterTest.setup(InCategoryFilterTest.java:44)
[junit]
[junit] Testcase: testTwoEntries took 0 sec
[junit] Caused an ERROR
[junit] null
[junit] java.lang.NullPointerException
[junit] at de.uniwue.jpp.accountbook.filter.InCategoryFilter.<init>(InCategoryFilter.java:11)
[junit] at tests.required.InCategoryFilterTest.setup(InCategoryFilterTest.java:44)
[junit]
[junit] Testcase: testThreeEntries took 0.001 sec
[junit] Caused an ERROR
[junit] null
[junit] java.lang.NullPointerException
[junit] at de.uniwue.jpp.accountbook.filter.InCategoryFilter.<init>(InCategoryFilter.java:11)
[junit] at tests.required.InCategoryFilterTest.setup(InCategoryFilterTest.java:44)
[junit]
[junit] Testcase: testEntryNull took 0 sec
[junit] Caused an ERROR
[junit] null
[junit] java.lang.NullPointerException
[junit] at de.uniwue.jpp.accountbook.filter.InCategoryFilter.<init>(InCategoryFilter.java:11)
[junit] at tests.required.InCategoryFilterTest.setup(InCategoryFilterTest.java:44)
[junit]
[junit] TEST tests.required.InCategoryFilterTest FAILED
[junit] Running tests.required.InMonthFilterTest
[junit] Testsuite: tests.required.InMonthFilterTest
[junit] Tests run: 5, Failures: 1, Errors: 0, Time elapsed: 0.016 sec
[junit] Tests run: 5, Failures: 1, Errors: 0, Time elapsed: 0.016 sec
[junit]
[junit] Testcase: testNull took 0 sec
[junit] Testcase: testValid took 0.013 sec
[junit] FAILED
[junit] Filter does not recognize a valid entry.
[junit] junit.framework.AssertionFailedError: Filter does not recognize a valid entry.
[junit] at tests.required.InMonthFilterTest.testValid(InMonthFilterTest.java:64)
[junit]
[junit] Testcase: testMonthInvalid took 0 sec
[junit] Testcase: testYearInvalid took 0 sec
[junit] Testcase: testMonthAndYearInvalid took 0 sec
[junit] TEST tests.required.InMonthFilterTest FAILED
[junit] Running tests.required.LogicalFiltersTest
[junit] Testsuite: tests.required.LogicalFiltersTest
[junit] Tests run: 10, Failures: 7, Errors: 1, Time elapsed: 0.167 sec
[junit] Tests run: 10, Failures: 7, Errors: 1, Time elapsed: 0.167 sec
[junit]
[junit] Testcase: testNotFilterConstructorNull took 0.103 sec
[junit] FAILED
[junit] Expected exception: java.lang.NullPointerException
[junit] junit.framework.AssertionFailedError: Expected exception: java.lang.NullPointerException
[junit]
[junit] Testcase: testAndFilterConstructorNullValue took 0.001 sec
[junit] FAILED
[junit] Expected exception: java.lang.NullPointerException
[junit] junit.framework.AssertionFailedError: Expected exception: java.lang.NullPointerException
[junit]
[junit] Testcase: testAndFilterConstructorValueNull took 0.012 sec
[junit] FAILED
[junit] Expected exception: java.lang.NullPointerException
[junit] junit.framework.AssertionFailedError: Expected exception: java.lang.NullPointerException
[junit]
[junit] Testcase: testAndFilterConstructorNullNull took 0 sec
[junit] FAILED
[junit] Expected exception: java.lang.NullPointerException
[junit] junit.framework.AssertionFailedError: Expected exception: java.lang.NullPointerException
[junit]
[junit] Testcase: testOrFilterConstructorNullValue took 0.013 sec
[junit] FAILED
[junit] Expected exception: java.lang.NullPointerException
[junit] junit.framework.AssertionFailedError: Expected exception: java.lang.NullPointerException
[junit]
[junit] Testcase: testOrFilterConstructorValueNull took 0.001 sec
[junit] FAILED
[junit] Expected exception: java.lang.NullPointerException
[junit] junit.framework.AssertionFailedError: Expected exception: java.lang.NullPointerException
[junit]
[junit] Testcase: testOrFilterConstructorNullNull took 0 sec
[junit] FAILED
[junit] Expected exception: java.lang.NullPointerException
[junit] junit.framework.AssertionFailedError: Expected exception: java.lang.NullPointerException
[junit]
[junit] Testcase: testNotFilter took 0.013 sec
[junit] Caused an ERROR
[junit] null
[junit] java.lang.NullPointerException
[junit] at de.uniwue.jpp.accountbook.filter.NotFilter.apply(NotFilter.java:13)
[junit] at tests.required.LogicalFiltersTest.testNotFilter(LogicalFiltersTest.java:77)
[junit]
[junit] Testcase: testAndFilter took 0.002 sec
[junit] Testcase: testOrFilter took 0.012 sec
[junit] TEST tests.required.LogicalFiltersTest FAILED
[junit] Tests FAILED

BUILD FAILED
 
S

SlaterB

Gast
der Quellcode des Tests, der aufruft.., der der vergleicht, wo wird definiert was das gewünschte Ergebnis ist?

unter
> [junit] Expected: "[09/17/12 09:58 AM - 33.67 - null]"
> [junit] got: "[22.05.2012 - 33.67 - A checking account.]"

sieht doch eher die erste Zeile wie von deinem toString() geliefert, das ist doch das aktuelle Datum, Uhrzeit hast du ja auch in deinem SDF,
'null' passt gut als irgendein Fehler, nicht gesetztes Feld,

also ist ../../.... schon erreicht, oder? war das dein Ziel? zum Vergleichswert passt das allerdings weniger..,
"Expected" + "got" sieht natürlich noch bisschen komisch aus

edit:
> Expected: "[09/17/12 10:31 AM - 33.67 - null]"
neuerdings zeigt umso mehr, dass das der variable Anteil ist, war um 9:58 aber auch schon ziemlich glasklar
 
Zuletzt bearbeitet von einem Moderator:
T

Tomate_Salat

Gast
Ne, ich wollte eher die Testmethode, bei der der Test fehlschlägt. z.B.:
Java:
public void testAbc()
{
        //... testcode
}
 
T

Tomate_Salat

Gast
Du hast uns nur eine Klasse gepostet. Jetzt interessiert uns, wie du mit der Klasse arbeitest. Dazu hast du ja anscheinen einen Test geschrieben und eben diesen Test möchten wir sehen.

----

Was wir (SlaterB und ich) dir schon so sagen können: Du erwartest (fälschlicherweise?) wohl immer die aktuelle Uhrzeit aus und nicht die, die in der Klasse gespeichert wird und du setzt in der Klasse das Feld "description" nicht, weswegen du ein [c]null[/c] bekommst.
 

David1982

Mitglied
Aha ich jetzt verstehe ich was du meinst ....

Der Test ist von der Uni also denn kann ich nicht posten...

Hier die anderen Klassen..

Java:
package de.uniwue.jpp.accountbook.model;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;

import de.uniwue.jpp.accountbook.filter.Filter;

public class AccountBook {
	private Collection<Account> accounts;
	private Collection<Category> incomes;
	private Collection<Category> expenses;
	private Collection<Entry> entries;

	public AccountBook() {
		this.accounts = new HashSet<Account>();
		this.incomes = new HashSet<Category>();
		this.expenses = new HashSet<Category>();
		this.entries = new HashSet<Entry>();
	}

	public static Collection<Category> flatten(Collection<Category> cats) {
		Collection<Category> retVal = new HashSet<Category>();
		flatten(cats, retVal);
		return retVal;
	}

	public static void flatten(Collection<Category> treecat,
			Collection<Category> flatcat) {
		for (Category item : treecat) {
			if (item instanceof Collection<?>) {
				flatten((Collection<Category>) flatcat);
			} else {
				flatcat.add(item);
			}
		}
	}

	public Collection<Account> getAccounts() {
		return Collections.unmodifiableCollection(accounts);
	}

	public Collection<Category> getIncomes() {
		return Collections.unmodifiableCollection(incomes);
	}

	public Collection<Category> getExpenses() {
		return Collections.unmodifiableCollection(expenses);
	}

	public Collection<Entry> getEntries() {
		return Collections.unmodifiableCollection(entries);
	}

	public void addAccount(Account account) {
		if (!accounts.contains(account)) {
			accounts.add(account);
		}
	}

	public void addIncomeCategory(Category category) {
		if (!incomes.contains(category)) {
			incomes.add(category);
		}
	}

	public void addExpenseCategory(Category category) {
		if (!expenses.contains(category)) {
			expenses.add(category);
		}
	}

	public void addEntry(Entry entry) {
		if (!entries.contains(entry)) {
			entries.add(entry);

			try {

			} catch (NullPointerException npe) {
			}
		}
	}

	public Collection<Category> findAllExpenseCategories() {
		return flatten(expenses);
	}

	public Collection<Category> findAllIncomeCategories() {
		return flatten(incomes);
	}

	public Collection<List<Category>> findExpenseCategoryByName(String name) {
		Collection<Category> flatlist = findAllExpenseCategories();
		Collection<List<Category>> Col = new HashSet<List<Category>>();
		for (Category cat : flatlist) {
			if (cat.getName() == name) {
				List<Category> list = new ArrayList<Category>();
				while (cat.getParent() != null) {
					if (!list.contains(cat)) {
						list.add(cat);
					}
					list.add(cat.parent);
					cat = cat.parent;
				}
				Col.add(list);
			}
		}
		return Col;
	}

	public Collection<List<Category>> findIncomeCategoryByName(String name) {
		Collection<Category> flatlist = findAllIncomeCategories();
		Collection<List<Category>> Col = new HashSet<List<Category>>();
		for (Category cat : flatlist) {
			if (cat.getName() == name) {
				List<Category> list = new ArrayList<Category>();
				while (cat.getParent() != null) {
					if (!list.contains(cat)) {
						list.add(cat);
					}
					list.add(cat.parent);
					cat = cat.parent;
				}
				Col.add(list);
			}
		}
		return Col;
	}

	public Account findAccountByName(String name) {
		Collection<Account> accountlist = this.accounts;
		for (Account acc : accountlist) {
			if (acc.getName() == name) {
				return acc;
			} else {
				try {
					throw new AccountNotFoundException();
				} catch (AccountNotFoundException e) {
				}
			}
		}
		return null;
	}

	public Collection<Entry> filterEntries(Filter filter) {
		Collection<Entry> entlist = this.entries;
		Collection<Entry> entex = new HashSet<Entry>();
		for (Entry ent : entlist) {
			if (filter.apply(ent)) {
				entex.add(ent);
			} else {
				try {
				} catch (NullPointerException e) {
				}
			}
		}
		return entex;
	}

}
 
Zuletzt bearbeitet:

David1982

Mitglied
und die Aufgabenstellung als Info :

Validierung der Eingaben und Exceptions im Fehlerfall

Insbesondere bei der Eingabe von Daten in Programme passieren häufig Fehler, die zu Situationen führen, in denen ein Wert beim Aufruf einer Methode oder der Erzeugung eines neuen Objekts einen Wert besitzt, den das Programm nicht verarbeiten kann. Deshalb ist es wichtig, bei öffentlichen Schnittstellen die beim Aufruf einer Methode angegebenen Werte auf Korrektheit zu prüfen.

Validieren Sie IMMER die Eingaben der angegebenen Methoden und Konstruktoren und werfen Sie im Fehlerfall eine passende Exception. Es sollen folgende Konventionen gelten:

Wird anstatt eines Objektes der Wert null übergeben, so ist eine java.lang.NullPointerException zu werfen.
Handelt es sich bei dem Objekt um einen String und ist dieser leer, also : "" , dann soll eine de.uniwue.jpp.accountbook.EmptyStringException geworfen werden.
Lesen Sie die Aufgabenstellung sorgfältig, an einigen Stellen kann von diesen Regeln abgewichen werden.
Wirf eine Methode eine eigene Exception, so wird der vollqualifizierte Klassenname angegeben. Implementieren Sie in diesem Fall die Exception. Leiten Sie diese stets von java.lang.RuntimeException ab.
Legen Sie die Klasse de.uniwue.jpp.accountbook.EmptyStringException an. Sie soll von java.lang.RuntimeException erben und alle Konstruktoren der Mutterklasse bereitstellen.

Die Klasse Account

Ein Account steht für ein beliebiges Konto, z.B. Sparbuch, Girokonto, Bargeldbestand, ... . Um Sie unterscheiden zu können, hat jeder Account einen eindeutigen Namen. Außerdem wird der Eröffnungsstand (opening balance) registriert. Implementieren Sie zuerst die Klasse Account im Paket de.uniwue.jpp.accountbook.model,

Die Klasse besitzt die Felder:

String name
Der eindeutige Name des Account.
float openingBalance
Der Eröffnungsstand des Account.
und folgende Konstruktoren und Methoden:

public Account(String name, float openingbalance)
Erstellt einen neuen Account und setzt seinen Namen und Eröffnungsstand. Validieren Sie die Parameter des Konstruktors. Folgende Fälle sollten zu einer Ausnahme führen:
<name> hat den Wert: null
Es wird eine java.lang.NullPointerException geworfen.
<name> ist der leere String.
Es wird eine de.uniwue.jpp.accountbook.model.EmptyStringException geworfen. Erstellen Sie hierzu die von java.lang.RuntimeException abgeleitete Exception de.uniwue.jpp.accountbook.model.EmptyStringException.
public String getName()
Liefert den Namen des Accounts.
public float getOpeningBalance()
Liefert den Eröffnungsstand des Account.
public boolean equals(Object obj) / public int hashCode()
Überschreiben Sie die Methoden equals/hashCode so, dass zwei Account-Objekte genau dann gleich sind, wenn ihre Namen übereinstimmen. Achten Sie auf die Einhaltung des Vertrags zwischen equals/hashCode
public String toString()
Überschreiben Sie die Methode so, dass ein String der Form
[<name> (<openingbalance>)]

zurückgegeben wird.
Die Klasse Category

Buchungen im Haushaltsbuch sollen Kategorien zugeordnet werden. Mögliche Kategorien sind z.B. Lebensmittel, Miete, Abonnements, ... . Dabei können Kategorien Hierarchien bilden:

|--Lebensmittel
\-- Getränke
\-- Fleisch
\-- Gemüse
\-- Sonstiges

Implementieren Sie als nächstes die Klasse de.uniwue.jpp.accountbook.model.Category. Die Klasse besitzt die Eigenschaften:
UUID uuid
Ein Universally Unique Identifier. Benutzen Sie hierzu den Typ java.util.UUID.
name: String
Der Name der Kategorie.
description: String
Eine Beschreibung der Kategorie.
parent: Category
Die Oberkategorie, zu der diese Kategorie gehört.
categories: Set<Category>
Eine Menge von Unterkategorien.
und folgende Konstruktoren und Methoden:
public Category(String uuid, String name, String description, Category parent)
Erstellt ein neues Category Objekt mit den gegebenen Werten und setzt die UUID auf den gegeben Wert. Das Argument parent darf den Wert <null> annehmen.
public Category(String name, String description, Category parent)
Erstellt ein neues Category Objekt mit den gegebenen Werten und setzt eine zufällige UUID. Das Argument parent darf den Wert <null> annehmen.
public String getName()
Liefert den Namen der Kategorie.
public void addCategory(Category category)
Fügt eine neue Unterkategorie hinzu. Ist die Kategorie bereits vorhanden, soll Sie nicht erneut hinzugefügt werden. Achten Sie darauf, die Eigenschaft parent in der Unterkategorie korrekt zu setzen.
public Set<Category> getCategories()
Liefert die Menge von Unterkategorien.
public String getDescription()
Liefert die Beschreibung der Kategorie.
public Category getParent()
Liefert die Oberkategorie dieser Kategorie oder den Wert null, falls die Kategorie zu keiner Oberkategorie gehört.
public UUID getUuid()
Liefert die eindeutige UUID für die Kategorie.
public boolean equals(Object o) / public int hashCode()
Überschreiben Sie equals und hashCode so, dass zwei Category Objekte genau dann gleich sind, wenn ihre uuid's gleich sind. Achten Sie auf die Einhaltung des Vertrags zwischen equals/hashCode
public String toString()
Überschreiben Sie die Methode so, dass ein String der Form
[<name> (<uuid>)]

zurückgegeben wird.
Die Klasse Entry

Die Klasse Entry repräsentiert einen Eintrag in das Haushaltsbuch. Ein Eintrag erfolgt immer in einer bestimmten Kategorie und wird außerdem einem Konto zugeordnet, sodass die Geldein- und abgänge nachvollzogenwerden können.

Implementieren Sie die Klasse de.uniwue.jpp.accountbook.model.Entry. Die Klasse hat mindestens die Felder:

Category category
Die Kategorie, zu der der Eintrag zugeordnet wird.
Account account
Das Konto, dem der Eintrag zugeordnet wird.
String description
Die Beschreibung des Eintrags.
Calendar timestamp
Das Datum, an dem die Position erzeugt wurde.
float value
Der Wert des Eintrages in Euro.
und außerdem mindestens die folgenden Konstruktoren und Methoden:
public Entry(Category category, Account account, Calendar timestamp, String description, float value)
Initialisiert einen Eintrag.
public Calendar getTimestamp()
Liefert das Datum, an dem die Position erzeugt wurde.
public String getDescription()
Liefert die Beschreibung des Eintrags.
public float getValue()
Liefert den Wert des Eintrags.
public Category getCategory()
Liefert die Kategorie, der der Eintrag zugeordnet ist.
public Account getAccount()
Liefert den Account, dem der Eintrag zugeordnet ist.
public boolean equals(Object o) / public int hashCode()
Überschreiben Sie equals und hashCode so, dass zwei Entry Objekte genau dann gleich sind, wenn description, value und timestamp gleich sind. Vergleichen Sie bei timestamp nur die Felder für Jahr, Monat und Tag.Achten Sie auf die Einhaltung des Vertrags zwischen equals/hashCode
public String toString()
Überschreiben Sie die Methode toString() so, dass Sie einen String der Form:
[<TT.MM.YYYY> - <value> - <description>]

zurück gibt. Benutzen Sie zur Formatierung des Datums die Klasse java.text.SimpleDateFormat.
Filter für Einträge

Es existieren bereits Konten, Kategorien und Einträge, die als Modell für unser Haushaltsbuch dienen. Um Auswertungen vornehmen zu können, ist es wichtig, die Menge aller Einträge auf bestimmte Eigenschaften hin zu Filtern. Beispiele dafür sind:

Einname- / Ausgabestatistik für spezielle Zeiträume
Einträge einzelner Kategorien, oder Mengen von Kategorien
Einträge für eine Auswahl von Konten
...
Außerdem kann es noch interessant sein, verschiedene Filter miteinander logisch zu verbinden.
Legen Sie die Schnittstelle (Interface) de.uniwue.jpp.accountbook.filter.Filter mit folgendem Inhalt an:

package de.uniwue.jpp.accountbook.filter;

import de.uniwue.jpp.accountbook.model.Entry;

/**
* An interface for arbitrary filters that can be applied to a collection of Entries.
*/
public interface Filter {

/**
* Applies this filter to an {@link Entry} instance.
*
* @param entry an entry.
* @return true if the filter is successfully applied, false otherwise.
*/
boolean apply(Entry entry);
}

Konkrete Filter

InCategoryFilter

Die Methode Filter.apply(Entry entry) liefert genau dann <true>, wenn der Eintrag einer der im Filter definierten Kategorien angehört. Erstellen Sie die von de.uniwue.jpp.accountbook.filter.Filter abgeleitete Klasse de.uniwue.jpp.accountbook.filter.InCategoryFilter mit folgendem Konstruktor:

public InCategoryFilter(Collection<Category> categories)
Initialisiert den Filter mit einer Liste von Kategorien, die er akzeptiert.
InMonthFilter

Die Methode Filter.apply(Entry entry) liefert genau dann <true>, wenn der Eintrag in dem im Filter angegebenen Monat und Jahr erstellt wurde. Zur Angabe des Monats werden die Konstanten aus java.util.Calendar verwendet. Erstellen Sie die von de.uniwue.jpp.accountbook.filter.Filter abgeleitete Klasse de.uniwue.jpp.accountbook.filter.InMonthFilter mit folgendem Konstruktor:

public InMonthFilter(int month, int year)
Initialisiert den Filter mit einem Monat und Jahr, für die Einträge akzeptiert werden sollen.
Logische Verknüpfungen zwischen Filtern

Filter können miteinander logisch verknüpft werden. Es ist zum Beispiel denkbar, dass man nach dem Monat und der Kategorie filtern möchte. Hierzu sollen für die logischen Verknpüfungen and, or, not Klassen bereitgestellt werden, die Filter miteinander verknüpfen und somit komplexe Filterregeln erlauben. Die folgenden Klassen werden ebenfalls von de.uniwue.jpp.accountbook.filter.Filter abgeleitet und ihre apply-Methode entsprechend der Beschreibung implementiert.

NotFilter

Erstellen Sie die Klasse de.uniwue.jpp.accountbook.filter.NotFilter mit dem Konstruktor:

public NotFilter(Filter filter)
Erzeugt eine Instanz mit dem gegebenen Filter.
Implementieren Sie die apply-Methode so, dass Sie das Ergebnis des im Konstruktor gesetzten Filter negiert.
AndFilter

Erstellen Sie die Klasse de.uniwue.jpp.accountbook.filter.AndFilter mit dem Konstruktor:

public AndFilter(Filter left, Filter right)
Erzeugt eine Instanz mit den gegebenen Filtern.
Implementieren Sie die apply-Methode so, dass Sie genau dann <true> liefert, wenn die Anwendung der beiden gesetzten Filter <true> ergibt. Sonst gibt sie <false> zurück.
OrFilter

Erstellen Sie die Klasse de.uniwue.jpp.accountbook.filter.OrFilter mit dem Konstruktor:

public OrFilter(Filter left, Filter right)
Erzeugt eine Instanz mit den gegebenen Filtern.
Implementieren Sie die apply-Methode so, dass Sie genau dann <false> liefert, wenn die Anwendung der beiden gesetzten Filter <false> ergeben. Sonst gibt sie <true> zurück.
Die Klasse AccountBook

Die Klasse AccountBook verwaltet Kategorien, Konten und Einträge. Bei Kategorien wird noch zwischen Ausgaben (expenses) und Einnahmen (incomes) unterschieden. Außerdem bietet Sie Methoden zum Zugriff und Filtern für Kategorien und Einträge. Dies wird für die spätere Auswertung benötigt.

Implementieren Sie die Klasse de.uniwue.jpp.accountbook.model.AccountBook. Wählen Sie für die Verwaltung der Konten, Einträge und Kategorien eine geeignete Implementierung von java.util.Collection. Die Klasse hat mindestens die Felder:

Collection<Account> accounts
Eine Sammlung von Konten.
Collection<Category> incomes
Eine Sammlung von Kategorien, in denen Einnahmen verbucht werden.
Collection<Category> expenses
Eine Sammlung von Kategorien, in denen Ausgaben verbucht werden.
Collection<Entry> entries
Eine Sammlung von Einträgen.
und außerdem die folgenden Konstruktoren und Methoden:
public AccountBook()
Initialisiert ein leeres Haushaltsbuch.
public Collection<Account> getAccounts()
Liefert eine Sammlung mit allen registrierten Konten. Achten Sie darauf, dass es nicht möglich ist, über die zurückgegebene Menge den internen Zustand der Klasse AccountBook zu verändern.
public Collection<Category> getIncomes()
Liefert eine Sammlung mit allen Einnahmekategorien. Achten Sie darauf, dass es nicht möglich ist, über die zurückgegebene Menge den internen Zustand der Klasse AccountBook zu verändern.
public Collection<Category> getExpenses()
Liefert eine Sammlung mit allen Ausgabekategorien. Achten Sie darauf, dass es nicht möglich ist, über die zurückgegebene Menge den internen Zustand der Klasse AccountBook zu verändern.
public Collection<Entry> getEntries()
Liefert eine Sammlung mit allen Einträgen. Achten Sie darauf, dass es nicht möglich ist, über die zurückgegebene Menge den internen Zustand der Klasse AccountBook zu verändern.
public void addAccount(Account account)
Fügt einen neuen Account zur Sammlung hinzu, falls dieser noch nicht existiert.
public void addIncomeCategory(Category category)
Fügt eine neue Einnahmekategorie zur Sammlung hinzu, falls diese noch nicht existiert.
public void addExpenseCategory(Category category)
Fügt eine neue Ausgabekategorie zur Sammlung hinzu, falls diese noch nicht existiert.
public void addEntry(Entry entry)
Fügt einen neuen Eintrag zur Sammlung hinzu, falls dieser noch nicht existiert.
public Collection<Category> findAllExpenseCategories()
Erstellt eine flache Repräsentation der Kategorienhierarchie für Ausgaben. Jede Kategorie taucht genau einmal in der Sammlung auf.
Beispiel:

-- Lebensmittel
\-- Getränke
\-- Fleisch
-- Versicherungen

wird zu:
[Lebensmittel, Getränke, Fleisch, Versicherungen]

public Collection<Category> findAllIncomeCategories()
Erstellt eine flache Repräsentation der Kategorienhierarchie für Einnahmen. Jede Kategorie taucht genau einmal in der Sammlung auf.
Beispiel:

-- Lebensmittel
\-- Getränke
\-- Fleisch
-- Versicherungen

wird zu:
[Lebensmittel, Getränke, Fleisch, Versicherungen]

public Collection<List<Category>> findExpenseCategoryByName(String name)
Findet alle Ausgabenkategorien mit dem angegeben Namen und liefert eine Liste mit Pfaden zu den jeweiligen Kategorien.
Beispiel:

-- Lebensmittel
\-- Getränke
\-- Fleisch
-- Party
\-- Getränke

Der Aufruf mit name = "Getränke" liefert dann
[[Lebensmittel, Getränke], [Party, Getränke]]

public Collection<List<Category>> findIncomeCategoryByName(String name)
Findet alle Einnahmenkategorien mit dem angegeben Namen und liefert eine Liste mit Pfaden zu den jeweiligen Kategorien.
Beispiel:

-- Lebensmittel
\-- Getränke
\-- Fleisch
-- Party
\-- Getränke

Der Aufruf mit name = "Getränke" liefert dann
[[Lebensmittel, Getränke], [Party, Getränke]]

public Account findAccountByName(String name)
Findet ein Konto mit dem angegebenen Namen. Ist kein Konto mit diesem Namen vorhanden, wird eine de.uniwue.jpp.accountbook.model.AccountNotFoundException geworfen.
public Collection<Entry> filterEntries(Filter filter)
Liefert alle Einträge, für die der Filter gültig ist.
 

David1982

Mitglied
Habe jetzt das erste Problemm :) gelöst ... DANKE

Java:
public Entry(Category category, Account account, Calendar timestamp,
			String description, float value) {
		this.category = category;
		this.account = account;
		this.timestamp = timestamp;
		this.value = value;
		this.description = description;

FINDE ABER NICHT HERAUS WIE ER AUF DAS DATUM KOMMT ...

Expected: "[09/17/12 11:09 AM - 33.67 - A checking account.]" OK verstehe ICH

aber wie kommt der auf das

got: "[22.05.2012 - 33.67 - A checking account.]"

und das ist URRRRRRalt aber weiss nicht besseres kann mir einer da was zu sagen ...

Java:
public boolean equals(Object o) {
		if(o instanceof Entry) {
			Entry eo = (Entry)o;
			if(eo.getDescription().equals(description) && 
			   eo.getValue() == value && 
				eo.getTimestamp().getTime().getYear() == timestamp.getTime().getYear() &&
				eo.getTimestamp().getTime().getMonth() == timestamp.getTime().getMonth() && 
				eo.getTimestamp().getTime().getDay() == timestamp.getTime().getDay()) {
				return true;
 
S

SlaterB

Gast
meine Güte, ist das alles unübersichtlich,
dass du new Date() formatierst, ist ja erst in der Mitte des Threads dazugekommen,
was spricht gegen den übergebenen timestamp?
vielleicht ist der ja der 22.5.

das SimpleDateFormat musst du dann noch auf Punkt statt / / umstellen und die Uhrzeit weglassen,
schon hättest du vielleicht "22.05.2012 - 33.67 - A checking account." geschafft,
 

David1982

Mitglied
Also nochmal das wir uns richtig verstehen....

Mein Pro. ist das die ausgabe des Datum falsch ist

Aktuell ist sie so TT.MM.YYYY
aber ich möchte MM.TT.YY ob . oder / ist mir igal.
 
S

SlaterB

Gast
und damit wir uns in die andere Richtung verstehen:
meine Aussage ist die ganze Zeit, dass die Programmausgabe
> "[09/17/12 11:09 AM - 33.67 - A checking account.]"
von deinem Code, eben vom new Date() stammt, also ist 'MM.TT.YY' schon erreicht (aber falsch für den Test anscheinend),
schließlich codierst du ja auch
> new SimpleDateFormat("MM/dd/yy hh:mm a");
daraus wird doch nicht per Zauberhand was anderes,

dass jetzt 'A checking account.' korrekt mit dabei ist statt vorher null ist doch ein Fehler, den du schon korrigiert hast?

wenn du immer noch nicht überzeugt bist, dann ändere die Ausgabe weiter,
baue noch ein "Halle, ich grüße alle die kenne." ein oder sonstwas und schaue dir an, welche der Zeilen sich verändert,

-----

meine Sicht nach wie vor, trotz komischen "Expected" + "Got", warum auch immer:
> [22.05.2012 - 33.67 - A checking account.]
ist das Ziel,
dafür musst du das SimpleDateFormat offensichtlich noch weit ändern,
außerdem wie gesagt vermutlich timestamp verwenden, nicht new Date()
 

ARadauer

Top Contributor
Java:
Date heute = new Date();
DateFormat df = new SimpleDateFormat("MM.dd.yy");
System.out.println(df.format(heute));
 

David1982

Mitglied
Das habe ich schon gemacht also du hast das geschrieben...

Java:
Date heute = new Date();
DateFormat df = new SimpleDateFormat("MM.dd.yy");
System.out.println(df.format(heute));
ich das
Java:
public String toString() {
		String result = "[";
		Date date = new Date();
		DateFormat sdf = new SimpleDateFormat("MM/dd/yy hh:mm a");
		// String formattedDate = sdf.format(date);
		result += sdf.format(date) + " - ";
		result += ((Float) value).toString() + " - ";
		result += description + "]";
		return result;
	}
}

und das geht nicht :-(
 
S

SlaterB

Gast
falls du meine Postings nicht nur als heiße Luft ignorierst, dann ist dazu zu sagen,
dass du von meinen Vorschlägen anscheinend noch nichts umgesetzt hast ;)

immer noch new Date(), immer noch falsches Format usw.

-----

> ((Float) value).toString()
klingt übrigens komisch, was passiert wenn du nur value schreibst?
oder String.valueOf(value)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Kerstininer Vererbung Hilfe beim lernen von Objektorientierung für eine Klausur Java Basics - Anfänger-Themen 10
A Hilfe beim Lesen von Pfaden und Systemvariablen Java Basics - Anfänger-Themen 3
X Hilfe beim Übertragen in eine For-Schleife Java Basics - Anfänger-Themen 1
C Brauche Hilfe beim Schreiben eines Programmes :/ Java Basics - Anfänger-Themen 1
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
pry bitte Hilfe beim Kreditrechner objektorientiert Java Basics - Anfänger-Themen 6
J Hilfe beim Label animieren Java Basics - Anfänger-Themen 1
J Hilfe beim verstehen Java Basics - Anfänger-Themen 3
L Anfänger braucht Hilfe - Stecke beim Lernen fest Java Basics - Anfänger-Themen 10
Bluedaishi Hilfe beim erklären dieser Methode Java Basics - Anfänger-Themen 5
J Hilfe beim Programmieren Java Basics - Anfänger-Themen 5
L Brauche Hilfe beim arbeiten mit Konstruktoren Java Basics - Anfänger-Themen 20
L Kleine Hilfe beim Schreiben eines Programmes benötigt :D Java Basics - Anfänger-Themen 40
W Hilfe beim Chat Programm Java Basics - Anfänger-Themen 14
S Erste Schritte Hilfe beim lernen von Programmieren Java Basics - Anfänger-Themen 2
der_Schokomuffin Hilfe gesucht beim Thema Objekte übergeben! Java Basics - Anfänger-Themen 2
J Hilfe beim Runden Java Basics - Anfänger-Themen 4
F (Eclipse) Beim importieren etwas fehlerhaft bitte um Hilfe :) Java Basics - Anfänger-Themen 3
V Erste Schritte Hilfe gesucht beim einstieg in Java und erste Aufgaben aus der Berufsschule Java Basics - Anfänger-Themen 9
S Compiler-Fehler Anfänger sucht Hilfe. Fehler beim Compilieren Java Basics - Anfänger-Themen 6
I Hilfe beim löschen von Buchstaben. Java Basics - Anfänger-Themen 1
I Hilfe beim löschen schon Buchstaben. Java Basics - Anfänger-Themen 4
J Hilfe beim "Verknüpfen" von zwei Klasse Java Basics - Anfänger-Themen 15
B Hilfe beim Kreisberechnungsprogramm Java Basics - Anfänger-Themen 6
D Hilfe beim übersetzen in der Klasse Throwable Java Basics - Anfänger-Themen 2
S Datentypen Hilfe beim Typecasting Java Basics - Anfänger-Themen 7
F Erste Schritte Hilfe beim Algorithmus finden Java Basics - Anfänger-Themen 8
R Brauche Hilfe beim fertigstellen eines Chat programms Java Basics - Anfänger-Themen 8
H Hilfe beim Programmablaufplan Java Basics - Anfänger-Themen 2
C Hilfe beim Zeichnen Java Basics - Anfänger-Themen 8
P Hilfe beim einlesen eines Textes Java Basics - Anfänger-Themen 11
B Hilfe beim Verständnis zu Generics Java Basics - Anfänger-Themen 7
S brauche hilfe beim fehler finden Java Basics - Anfänger-Themen 2
B Co2 rechner hilfe beim programmieren Java Basics - Anfänger-Themen 10
D Hilfe beim einlesen eines Strings mit Leerzeichen Java Basics - Anfänger-Themen 16
C Brauche dringend hilfe beim exception im code Java Basics - Anfänger-Themen 5
E Hilfe beim Einstieg Java Basics - Anfänger-Themen 46
T brauche HILFE beim Junit test:eek: Java Basics - Anfänger-Themen 11
P HILFE !!! erste aufgabe beim programmieren Java Basics - Anfänger-Themen 13
S Bisschen hilfe beim Sudoku Lösen benötigt Java Basics - Anfänger-Themen 7
V Hilfe beim implementieren von Iterator Java Basics - Anfänger-Themen 5
Y Brauche Hilfe beim Programm Java Basics - Anfänger-Themen 83
Developer_X Hilfe beim umbauen von Strings Java Basics - Anfänger-Themen 4
S Bitte um Hilfe beim unsortierten Binärbaum!! Java Basics - Anfänger-Themen 6
M Brauche Hilfe beim Verstehen vom Quellcode Java Basics - Anfänger-Themen 4
G Fehler beim Ausführen HILFE! Java Basics - Anfänger-Themen 12
V Brauche Hilfe beim Programmieren Java Basics - Anfänger-Themen 3
V Brauche Hilfe beim Programmieren Java Basics - Anfänger-Themen 9
A Hilfe beim "übersetzen" Java Basics - Anfänger-Themen 7
O Linux - Fehler beim kompilieren - HILFE Java Basics - Anfänger-Themen 4
S brauche hilfe beim dateien kopieren / bearbeiten Java Basics - Anfänger-Themen 3
E brauche hilfe beim KeyListener Java Basics - Anfänger-Themen 4
S Hilfe beim Einlesen Java Basics - Anfänger-Themen 6
K Hilfe beim starten eines Programms! Bitte helfen. Java Basics - Anfänger-Themen 8
D Hilfe beim Übergeben vom JTextfield Java Basics - Anfänger-Themen 2
E hilfe beim code Java Basics - Anfänger-Themen 3
I Hilfe beim Java-Applet Beispiel Java Basics - Anfänger-Themen 27
G Hilfe zur einer Aufgabe: Datumsüberprüfung beim Gregorianis Java Basics - Anfänger-Themen 2
K Brauche Hilfe beim Programmieren eines Funktionsplotters Java Basics - Anfänger-Themen 3
B Hilfe beim Schüler-Project Java Basics - Anfänger-Themen 4
G Hilfe beim addieren(Anfänger) Java Basics - Anfänger-Themen 12
F Hilfe beim Zeichnen in JPanel Java Basics - Anfänger-Themen 2
L Kompletter Neuling: Hilfe beim ersten Java Versuchen Java Basics - Anfänger-Themen 12
F Hilfe beim erstellen von Jar files! Java Basics - Anfänger-Themen 2
A Hilfe beim Java-Einstieg Java Basics - Anfänger-Themen 3
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
E Hilfe bei rekursiver Funktion Java Basics - Anfänger-Themen 3
H pdf stempel - Hilfe erbeten Java Basics - Anfänger-Themen 6
KogoroMori21 Wann ist der richtige Zeitpunkt, um sich Hilfe zu suchen? (Bin Informatik-Student) Java Basics - Anfänger-Themen 10
F RegEx Hilfe Java Basics - Anfänger-Themen 5
S Hilfe bei Endlosschleife Java Basics - Anfänger-Themen 2
S Hilfe bei Praktischen Aufgaben von Arrays Java Basics - Anfänger-Themen 39
U Ich bräuchte Hilfe Java Basics - Anfänger-Themen 1
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
Justin4687 Benötige Hilfe bei folgender Aufgabe Java Basics - Anfänger-Themen 2
aero043 Hilfe bei BlueJ Hausübung Java Basics - Anfänger-Themen 27
S Hilfe zu einer Aufgabe Java Basics - Anfänger-Themen 5
P Hilfe gesucht Java Basics - Anfänger-Themen 11
D Hilfe bei Calculator Test Java Basics - Anfänger-Themen 15
R Hilfe bei Aufgabe Java Basics - Anfänger-Themen 4
Zentriks Hilfe zu Sieb des Eratosthenes ohne boolean Java Basics - Anfänger-Themen 5
R Java Bücher hilfe Java Basics - Anfänger-Themen 9
U HILFE! - per ActionListener Felder enablen....... Java Basics - Anfänger-Themen 5
I Scheduling: "Quartz" verwenden, Hilfe bei Umstellung Java Basics - Anfänger-Themen 3
I Hilfe bei Klausur Frage Java Basics - Anfänger-Themen 8
L Hilfe! Liste mit Items werden ausgegeben aber nicht in zufälliger Reihenfolge Java Basics - Anfänger-Themen 6
Ekooekoo Hilfe spiel Java Basics - Anfänger-Themen 5
SpiritsHuner Hilfe!! Java Basics - Anfänger-Themen 16
Lacotto Java Kurs Aufgaben Hilfe Java Basics - Anfänger-Themen 14
V Hilfe bei Implementierung einer boolean Methode Java Basics - Anfänger-Themen 6
M HILFE JPanel - Graphics Java Basics - Anfänger-Themen 1
D Hilfe bei einer Aufgabe mit for-Schleife Java Basics - Anfänger-Themen 6
Neuling47 Denkfehler? Hilfe Java Basics - Anfänger-Themen 11
S Hilfe bei Umänderung von Java Code Java Basics - Anfänger-Themen 16
Robert_Klaus Hamster java Simulation Hilfe bei einer Aufgabe Java Basics - Anfänger-Themen 5
X Erste Schritte Hilfe bei einem kleinen Spiel. Java Basics - Anfänger-Themen 19
D Bitte um Hilfe muss es schnellstmöglich erledigen Java Basics - Anfänger-Themen 15
L Hilfe bei RegEx Java Basics - Anfänger-Themen 4
I Bitte um Hilfe zu unterstehenden Code Java Basics - Anfänger-Themen 6
B Brauche Hilfe zu einem Code Java Basics - Anfänger-Themen 5

Ähnliche Java Themen

Neue Themen


Oben