Здравствуйте, Rius, Вы писали:
R>попробуйте получить число дней встроенными свойствами класса TDateTime
К сожалению, встроенных свойств для этого нету. В хелпе так и написано, The integral part of a TDateTime value is the number of days that have passed since 12/30/1899. Сейчас получается дикий изврат, когда я отбрасываю ошибки округления, а только потом получаю верное количество дней:
// убрать погрешности вычисления времени
TDateTime RemoveFloatRemsFromTime(const TDateTime &Time)
{
unsigned short d, m, y, h, n, s, ms;
Time.DecodeTime( &h, &n, &s, &ms );
Time.DecodeDate( &y, &m, &d );
TDateTime r( y, m, d );
ReplaceTime( r, TDateTime( h, n, s, ms ) );
return r;
}
// получить количество дней в дате
// нельзя использовать просто int из за возможных погрешностей вычислений
int DaysCountFromDateTime(const TDateTime &Date)
{
int r = RemoveFloatRemsFromTime( Date );
return r;
}