Gå til innhold

[Løst] J2ME, finne ukedag ut ifra dato


Anbefalte innlegg

Jeg er igang med et lite J2ME-prosjekt etter å ha vært borte fra programmering i noen år. Nå står jeg fast, og håper noen her kan hjelpe.

 

Jeg skal finne ukedag (et tall fra 1-7) ut ifra en dato (String) på formatet; "2008-12-28".

 

Koden jeg for øyblikket har kommet fram til, men som ikke fungerer, ser slik ut:

 

		String date = "2008-12-28";
	Calendar mCalendar;
	int day = 0;
	int month = 0;
	int year = 0;

	day = Integer.parseInt(date.substring(8, 10));
	month = Integer.parseInt(date.substring(5, 7));
	year = Integer.parseInt(date.substring(0, 4));

	mCalendar = Calendar.getInstance();

	mCalendar.set(Calendar.DAY_OF_MONTH, day);
	mCalendar.set(Calendar.MONTH, month);
	mCalendar.set(Calendar.YEAR, year);

	try {
		System.out.println("DAY_OF_WEEK: " + mCalendar.get(Calendar.DAY_OF_WEEK));
	} catch (Exception e) {
		e.printStackTrace();
	}

 

Dette fører til en java.lang.IllegalArgumentException. Hvis noen kan gi et hint i riktig retning, hadde jeg vært takknemlig.

Endret av geir_a
Lenke til kommentar
Videoannonse
Annonse

Så vidt jeg vet eksisterer ikke GregorianCalendar i J2ME. Jeg finner det i hvert fall ikke i MIDP API-dokumentasjonen.

 

Feilmeldingen fra printStackTrace():

 

java.lang.IllegalArgumentException

- com.sun.cldc.util.j2me.TimeZoneImpl.getOffset(), bci=14

- com.sun.cldc.util.j2me.CalendarImpl.computeTime(), bci=225

- java.util.Calendar.getTimeInMillis(), bci=8

- java.util.Calendar.get(), bci=25

- Day.<init>(), bci=153

- TestCanvas.<init>(), bci=22

- TestMIDlet.startApp(), bci=12

- javax.microedition.midlet.MIDletInvoker.invokeStartApp(), bci=1

- com.symbian.j2me.midp.runtimeV2.Application.startAction(), bci=13

- com.symbian.j2me.midp.runtimeV2.Application.startRequest(), bci=83

- com.symbian.j2me.midp.runtimeV2.Application.event(), bci=110

- com.symbian.j2me.midp.runtimeV2.ApplicationEvent.dispatch(), bci=2

- com.symbian.j2me.midp.runtimeV2.ApplicationThread.run(), bci=23

Endret av geir_a
Lenke til kommentar

Problemet ligger i linja

mCalendar.set(Calendar.MONTH, month);

som skal endres til

mCalendar.set(Calendar.MONTH, month - 1);

 

I Calendar-klassen er gyldige verdier for måned 0 til 11. Det ble selvfølgelig krøll da jeg prøvde å sette verdien for måned til 12.

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...