Смещение даты
Скачать (zip-файл; Размер - 34475)Обсудить в форуме
Описание
Исправлена ошибка определения високосного года, из-за которой разъезжались результаты функций всей библиотеки, если дата была дальше 28-го февраля.
Операции с датой - можно вычитать и прибавлять количество дней, месяцев, лет.
sdate.d32 экпортирует в РСЛ одну функцию getDateOffset:
getDateOffset(BeginDate:Date[,DaysOffset:Integer[,MonthsOffset:Integer[,YearsOffset:Integer]]]):Date
определяем, выходной ли согласно календарю рс-банк
var ret = dlmRSBankWorkDay (
path_calendar:string, //s* полный путь к файлу calendar.dbt
date_current:date, //s проверяемая дата
[Calend_record_len:integer]// sr если подать размер записи calendar.dbt то не вызовем B_STAT
);
вернет true/false - про выходной
либо String про ошибку
------------
* s - send, r - receive
Операции с датой - можно вычитать и прибавлять количество дней, месяцев, лет.
sdate.d32 экпортирует в РСЛ одну функцию getDateOffset:
getDateOffset(BeginDate:Date[,DaysOffset:Integer[,MonthsOffset:Integer[,YearsOffset:Integer]]]):Date
определяем, выходной ли согласно календарю рс-банк
var ret = dlmRSBankWorkDay (
path_calendar:string, //s* полный путь к файлу calendar.dbt
date_current:date, //s проверяемая дата
[Calend_record_len:integer]// sr если подать размер записи calendar.dbt то не вызовем B_STAT
);
вернет true/false - про выходной
либо String про ошибку
------------
* s - send, r - receive
Текст примера
import sdate; var datb = Date(1,1,2005); var KoneC_Kvartala = getDateOffset(dat,0,3) - 1; /*1 апреля 2005*/ getDateOffset(dat,1,2, -4); /*2 марта 2001*/ var date_current = Date(1,1,2009); var date_finish = getDateOffset(date_current,0,0,1); var b_next = true; var Calend_record_len = 0; while ( (ValType(b_next)==V_BOOL ) AND (date_current <= date_finish) ) b_next = dlmRSBankWorkDay(path_calendar, date_current, Calend_record_len); if ( ValType(b_next)==V_STRING ) println(b_next); else println( " " + String(date_current ," ", b_next )); date_current = date_current + 1; end; end;