On Sunday 08 June 2003 20:56, Ralf Schneider wrote:
Letztendlich soll der Algorithmus mit C++ und Qt realisiert werden.
QDate::weekNumber() kann es ja leider nur andersherum...
So aus dem Bauch heraus würde ich sagen, so ungefähr sollte das funktionieren
(ungetestet, probier's mal aus):
int monthOfWeek( int year, int week )
{
QDate date( year, 1, 1 );
date.addDays( (week-1) * 7 );
return date.month();
}
Oder habe ich da was übersehen?
Übrigens: Wochenanfang ist bei uns der Montag, in den USA der Sonntag, soviel
ich weiß; das macht das evtl. ein bißchen unzuverlässig. Qt sagt dazu:
"In accordance with ISO 8601, weeks start on Monday and the first Thursday of
a year is always in week 1 of that year. Most years have 52 weeks, but some
have 53."
Das könnte auch noch problematisch sein, d.h. man muß zusätzlich zum Monat
auch noch das Jahr berücksichtigen (d.h. evtl. das ganze QDate() zurückgeben,
nicht nur QDate::month() ):
"yearNumber is not always the same as year(). For example, 1 January 2000 has
week number 52 in the year 1999, and 31 December 2002 has week number 1 in
the year 2003."
CU
--
Stefan Hundhammer