Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Вычитание одной даты из другой


Автор: nnm 13.1.2008, 01:17
Доброй всем ночи...
Хм....тута така загагулина
У меня есть три Edit.
В первом Edit1 я ввожу например 01.01.2005
Во втором Edit2 я ввожу 01.31.2005
Как мне сделать так что бы в Edit3 появилась разница этих дат то есть 30 дней
Как отнять одну дату от другой...чет я не могу понять....как считать правельно дату...с Edit1 и Edit2
Писать какой то класс.. это не вариант....может можно как то попроще?

Автор: Rodman 13.1.2008, 13:16
Код

Edit3.Text=IntToStr(DaysBetween(StrToDate(Edit1.Text), StrToDate(Edit2.Text))); 

а при чем тут статьи?

Автор: artsb 13.1.2008, 14:41
Цитата(Rodman @  13.1.2008,  13:16 Найти цитируемый пост)
а при чем тут статьи?

Первый пост. Сам понимаешь... smile

Автор: wolf_skin 21.1.2008, 10:39
Код

String __fastcall TfrmMain::DiffDate(TDateTime cur, TDateTime last)
{
   unsigned short y;
   unsigned short m;
   unsigned short d;

   int       iDifference;
   String    sDifference;
   int       temp;

   iDifference = cur - last;

   TDateTime dDifference(iDifference);

   dDifference.DecodeDate(&y, &m, &d);

   y -= 1900;
   m -= 1;
   d += 1;

   if(d > 30)
   {
      d -= 30;
      m++;
   }

   if(m > 11)
   {
      m = 0;
      y ++;
   }

   sDifference = IntToStr(d) + " дней " +
                 IntToStr(m) + " месяцев " +
                 IntToStr(y) + " годов";

   return sDifference;
}


возможно гдето есть неточность... функа особо не тестировалась

Автор: ruford 4.2.2008, 14:06
TDateTime dat1,dat2,difference;
difference = dat2-dat1;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)