Это - достаточно беспорядочный архив сообщений конференций сети fidonet, которые на момент их прочтения мной
показались полезными или интересными. Многие устарели, многие узкоспецифичны и малоинтересны, но может оказаться и что-то новое...
- __techs (2:5015/42) ----------------------------------------------- __techs - Msg : 17 of 1000 Scn From : Alexey V Dmitriev 2:5020/157.24 14 May 96 09:51:52 To : All 16 May 96 07:33:10 Subj : day of week ------------------------------------------------------------------------------- @AREA:NICE.SOURCES Hi, All. Вот вычитал в журнале, может кому нужно: >Example 1: Day of the week. #include <stdio.h> #endif /* This table starts on Sunday !!! */ char *name[] = { "Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", }; void main(void) { int D,M,Y,A; D=3; M=3; Y=1995; printf("formula1, day=%s\\n",name[dayofweek1(D, M, Y)]); printf("formula2, day=%s\\n",name[dayofweek1(D, M, Y)]); } int dayofweek1(int d, int m, int y) { return(((d+((26*((m<3)?m+13:m+1))/10)+((125*(long)((m<3)?y-1:y))/100) -(((m<3)?y-1:y)/100)+(((m<3)?y-1:y)/400))-1)%7); } int dayofweek2(int d, int m, int y) { return((d+(int)((1040*(long)((m<3)?m+13:m+1))+ (597*(long)((m<3)?y-1:y))/400))%7); } >Example 2: Day-of-the-week C macro. /* Day-Of-Week macro for international Monday-Sunday calendars */ #define dow(y,m,d) \\ ( ( ( 3*(y) - (7*((y)+((m)+9)/12))/4 + (23*(m))/9 + (d) + 2 \\ + (((y)-((m) <3))/100+1) * 3 / 4 - 16 ) % 7 ) ) Lexa Dмиtpиев. --- DeDoc 2.50.A0715+ * Origin: SNET BBS +7-095-289-4232 (2:5020/157.24)