> > Кроме того в третьем диалекте - деление целого на целое дает целое.
>
> > А в первом - вещественное.
>
> а попробовать?

Честное слово - я пробовал :) Или власть уже поменялась? Ладно, сейчас
это не важно.

Забавно другое - препроцессор от билдера стреляется. Говорит - не могу
развернуть VAR_WN :)

---
//-------------------------------------------------------------------------
#define ARG_YEAR    :Year  //"Year"  // (2007)
#define ARG_MONTH   :Month //"Month" // (9)
#define ARG_DAY     :Day   //"Day"   // (27)

//-------------------------------------------------------------------------
#define OP_DIV_INT(a,b) ((a)/(b))

#define OP_MULT(a,b) ((a)*(b))

#define OP_MOD(a,b) (a-OP_MULT(OP_DIV_INT(a,b),b))

//-------------------------------------------------------------------------
#define VAR_A       OP_DIV_INT(ARG_MONTH,12)

#define VAR_Y       (ARG_YEAR+4800-VAR_A)

#define VAR_M       (ARG_MONTH+OP_MULT(12,VAR_A)-3)

#define VAR_JD      (ARG_DAY+OP_DIV_INT(OP_MULT(153,VAR_M)+2,5)    \
                     +OP_MULT(365,VAR_Y)                           \
                     +OP_DIV_INT(VAR_Y,4)                          \
                     -OP_DIV_INT(VAR_Y,100)                        \
                     +OP_DIV_INT(VAR_Y,400)                        \
                     -32045)

//-------------------------------------------------------------------------
#define VAR_J       VAR_JD

#define VAR_D4_1    (VAR_J+31741-OP_MOD(VAR_J,7))

#define VAR_D4_2    OP_MOD(VAR_D4_1,146097)

#define VAR_D4_3    OP_MOD(VAR_D4_2,36524)

#define VAR_D4      OP_MOD(VAR_D4_3,1461)

#define VAR_L       OP_DIV_INT(VAR_D4,1460)

#define VAR_D1      (OP_MOD(VAR_D4-VAR_L,365)+VAR_L)

#define VAR_WN      (OP_DIV_INT(VAR_D1,7)+1)

VAR_JD

VAR_D4

VAR_D1

VAR_WN
---

Сейчас попробую заюзать препроцессор от студии

Коваленко Дмитрий

Ответить