Hvorfor får jeg forket uge nummer i følgende kode der retuneres uge 1 og det skullle være uge 53. Ifølge ISO 8601. Findes der en anden løsning i Visual C 6.0 ???
// Get Current Week and year char tmpbuf[128]; time_t Fltime; struct tm *today; _tzset();
/* Use time structure to build a customized time string. */ time(&Fltime); // Get Current time today = localtime( &Fltime ); int Week;
strftime(tmpbuf,128,"%W",today); //Get the week number Week = atoi(tmpbuf)+1; //week number starts at week 0
Ugen starter med mandag Uge 1 er den uge der indeholder den første torsdag Årets sidste uge er den uge der indeholder årets sidste torsdag Vores funktion kan derfor siges at skulle implementerer følgende: Ugen for en hvilken som helst dag, er den samme, som ugen for den nærmeste torsdag. o For at finde den nærmeste torsdag, kan man gøre følgende: Dato += 4 dage - Dag i ugen (hvor mandag=1, tirsdag=2....) Den første torsdag i et kalenderår, befinder sig i uge 01 Uge nummeret for den nærmeste torsdag, er: Torsdagens dag-i-kalenderåret divideret med 7 dage - rundet ned plus 1. */
// Get Current Week and year char tmpbuf[128]; time_t Fltime, now,result; struct tm *today; struct tm when;
int IsoDayOfWeek, IDayOfYear, WeekOfYear,iTemp; time(&now); // Get Current time today = gmtime( &now );
strftime(tmpbuf,128,"%w",today); //Weekday as decimal number (0 – 6; Sunday is 0) IsoDayOfWeek = (atoi(tmpbuf)==0)? 7: (atoi(tmpbuf)); //If sunday change to number to 7 time(&now); // Get Current time when = *gmtime( &now ); when.tm_mday = (when.tm_mday + 4)-IsoDayOfWeek; // The nearest thursday result = mktime( &when ) ; //converts the supplied time structure where day have changed to thursday
IDayOfYear = when.tm_yday; //Day of year as decimal number (001 – 366) WeekOfYear = floor(IDayOfYear/7)+1;
int main() { int d; for(d=20;d<=31;d++) test(cvt(2004,12,d)); for(d=1;d<=12;d++) test(cvt(2005,1,d)); return 0; }
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.