Клуб IT-шников ТТУ
#2073
Отправлено 04 декабря 2008 - 17:57
// datesdiff #include <stdio.h> const int MonthDays[12] = {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; inline int absi(int i) { if (i < 0) return -i; else return i; } inline int y366(int year) { return !(year % 4) && ((year % 100) || !(year % 400)); } int check(int d, int m, int y) { return ( (d > 0) && (d < 32) && (m > 0) && (m < 13) && (y > 0) && ((d <= MonthDays[m-1]) || ((m == 2) && (d == 29) && y366(y))) ); } int diffWithinYear(int d1, int m1, int d2, int m2, int y) { int i, days = d1; for (i = m2; i < m1; i++) days += MonthDays[i-1]; if (m1 > 2 && m2 <= 2 && y366(y)) days++; days -= d2; return days; } int main() { char buff[1024]; int d[2], m[2], y[2], diff = 0, i, b = 0; printf("Date format DD MM YYYY\n"); for (i = 0; i < 2; i++) { printf("Enter date #%d: ", i+1); gets(buff); while (sscanf(buff, "%d %d %d", &d[i], &m[i], &y[i]) != 3 || !check(d[i], m[i], y[i])) { printf("Invalid date, re-enter: "); fgets(buff, 1024, stdin); } } if (y[0] == y[1] && m[0] == m[1]) { diff = absi(d[0] - d[1]); } else if (y[0] == y[1]) { if (m[1] > m[0]) b = 1; diff = diffWithinYear(d[b], m[b], d[1-b], m[1-b], y[0]); } else // (y[0] != y[1]) { if (y[1] > y[0]) b = 1; diff += diffWithinYear(d[b], m[b], 1, 1, y[b]); diff += diffWithinYear(31, 12, d[1-b], m[1-b], y[1-b]); for (i = y[1-b]+1; i < y[b]; i++) { diff += 365; if (y366(i)) diff++; } diff++; } printf("The number of days between %02d.%02d.%d and %02d.%02d.%d is %d", d[0], m[0], y[0], d[1], m[1], y[1], diff); return 0; }
#2080
Отправлено 09 декабря 2008 - 08:57
– Совсем худо, – заключил хозяин, – что-то, воля ваша, недоброе таится в мужчинах, избегающих вина, игр, общества прелестных женщин, застольной беседы. Такие люди или тяжко больны, или втайне ненавидят окружающих.
#2083
Отправлено 09 декабря 2008 - 16:31
Сообщение изменено: I_am_lonely (09 декабря 2008 - 16:32 )
#2095
Отправлено 19 декабря 2008 - 08:58
#2097
Отправлено 19 декабря 2008 - 13:59
80.напомните пожалуйста: набрав какое количество ап можно приступаться за дипломку?
Подробнее:
põhiliste alusõppeainete läbimise ja õppeetappide vahetamise tingimused
lõpetamisetappi üleviimine: 80 AP.
lõpetamistingimused:
- Õppekava täitmine nõutud mahus ja lõputöö edukas kaitsmine TTÜ nõukogu poolt kehtestatud korras;
- Kaalutud keskhinne mitte alla 2.0;
- CUM LAUDE diplomi saamiseks peab kaalutud keskhinne olema vähemalt 4.60 ja kõik hinded 3 või kõrgemad ning lõputöö kaitstud hindele 5.
#2099
Отправлено 24 декабря 2008 - 19:44
#2 - "Office, The"
#3 - "Dexter"