Surprise Napisano Kwiecień 11, 2019 Autor Zgłoś Udostępnij Napisano Kwiecień 11, 2019 Mam sobie takie problemi. Mały bo mały ale zawsze coś... Są sobie takie dwie strukturki - SYSTEMTIME, wypełnione dwoma datami. Chcę żeby jakaś funkcja ładniutko mi wyświetliła ile dni te dwie daty dzieli. Czy ktoś zna taką funkcję, a może napisze jakąś dla mnie.. PLISSS... Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Complex Napisano Kwiecień 11, 2019 Zgłoś Udostępnij Napisano Kwiecień 11, 2019 To Ci sie moze przydać :) reszta to tylko petla iteracyjna i masz gotowe algo. Powodzenia :) int fYearLeap(int year) { if((year%4) != 0) return 0; else if((year%400) == 0) return 1; else if((year%100) == 0)return 0; return 1; } int fGetNrdayofmonth(int month, int year) { if(month == 1 || month == 3 || month == 5 ||month == 7 || month == 8 || month == 10 || month == 12) { return 31; } if(month == 4 || month == 6 || month == 9 || month == 11) { return 30; } if(month == 2 && fYearLeap(year) == 1) { return 29; } else { return 28; } } Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Surprise Napisano Kwiecień 11, 2019 Autor Zgłoś Udostępnij Napisano Kwiecień 11, 2019 Dzięki mistrzu.. To rzeczywiście może sieprzydać. Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Randal Napisano Kwiecień 15, 2019 Zgłoś Udostępnij Napisano Kwiecień 15, 2019 A ja swego czasu napisalem taka procedurke: // zwraca liczbe dni pomiedzy dwoma datami int RoznicaDat(DATA_CZAS *in2, DATA_CZAS *in1) { DATA_CZAS temp; int sum1, sum2; int a, b; // in1 musi byc wczesniej niz in2 if(in1->rok > in2->rok) return -1; if(in1->rok == in2->rok) { if(in1->miesiac > in2->miesiac) return -1; if(in1->miesiac == in2->miesiac) if(in1->dzien > in2->dzien) return -1; } memcpy(&temp, in1, sizeof(DATA_CZAS)); // oblicz sume dni in1 sum1 = in1->dzien; for(a = 0; a < in1->miesiac - 1; a++) sum1 += ((!(in1->rok % 4)) && (a == 1)) ? 29 : maxdni[a]; for(a = 0; a < in1->rok; a++) sum1 += (a % 4) ? 365 : 366; // oblicz sume dni in2 sum2 = in2->dzien; for(a = 0; a < in2->miesiac - 1; a++) sum2 += ((!(in2->rok % 4)) && (a == 1)) ? 29 : maxdni[a]; for(a = 0; a < in2->rok; a++) sum2 += (a % 4) ? 365 : 366; return sum2 - sum1; } maxdni to tablica 12-elementowa int z iloscia dni poszczegolnych miesiecy (luty = 28 ) Niby dziala Cytuj Link do komentarza Udostępnij na innych stronach More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.