SASH |
Отправлено: 07.10.2003, 13:18 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 58
|
Есть база.
В ней есть поля "ночало отпуска" и "дата окончания отпуска".
Скажите пожалуйста, как из периода отпуска вычесть праздничные даты???
Например, если отпуск с 6 января(ночало отпуска) по 1 февраля(дата окончания отпуска). Встречается праздник 7 января. Если отпуск с 1 мая по 23 мая. Встречаетс 1, 2, 9 мая. |
|
Admin |
Отправлено: 07.10.2003, 21:12 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Наверное завести массив праздничных дней и
проверять на наличие даты в массиве.
CODE |
void __fastcall TForm1::Button1Click(TObject *Sender)
{
// DTP1,DTP2 — компоненты TDateTimePicker
struct PD{
int day;
int month;
};
PD pd[4];
pd[0].day = 7; pd[0].month = 1;
pd[1].day = 1; pd[1].month = 5;
pd[2].day = 2; pd[2].month = 5;
pd[3].day = 9; pd[3].month = 5;
int count=0;
TDate dt;
for(dt=DTP1->Date; dt < DTP2->Date; dt++){
unsigned short day,month,year;
DecodeDate(dt,year, month,day);
for(int j=0; j<4; j++){
if(pd[j].day == day && pd[j].month == month) { count++; break; }
}
}
Label1->Caption = "Праздничных дней найдено: "+IntToStr(count);
}
//---------------------------------------------- |
Отредактировано Admin — 07/10/2003, 22:17
|
|
SASH |
Отправлено: 09.10.2003, 06:46 |
|
Дежурный стрелочник
Группа: Участник
Сообщений: 58
|
Большое спасибо Admin. |
|
Admin |
Отправлено: 09.10.2003, 12:37 |
|
Владимир
Группа: Администратор
Сообщений: 1190
|
Да, а если у вас есть база, то может имеет смысл
завести в ней таблицу с 2-мя полями для
праздничных дней (они хоть редко, но могут меняться,
а если эти дни жестко прописаны в .exe — может получиться
не очень хорошо)
Tbl_Holidays
---------------
int HDay
int HMonth
и помещять праздничные дни туда.
А потом также доставать их оттуда и проверять.
|
|