ADN Open CIS
Сообщество программистов Autodesk в СНГ

23/12/2015

Преобразование даты из Юлианского календаря

Простейший способ для преобразования Юлианской даты (формат системной переменной DATE) в формат день, месяц, год, часы минуты, секунды, миллисекунды – это использование класса AcDbDate. Вот пример его использования:

Код - C++: [Выделить]
  1. static void GetDate () {
  2.   struct resbuf rDate;
  3.   double time;
  4.   acedGetVar(_T("DATE"), &rDate);
  5.   time = rDate.resval.rreal;
  6.   AcDbDate testDate;
  7.   testDate.setJulianFraction(time);
  8.   acutPrintf(_T("\nГод=%d\nМесяц=%d\nДень=%d\nМинуты: %d\nСекунды: %d\nМиллисекунды: %d"),
  9.     testDate.year(),
  10.     testDate.month(),
  11.     testDate.day(),
  12.     testDate.minute (),
  13.     testDate.second (),
  14.     testDate.millisecond ());
  15. }

 

Аналогично можно поступить для преобразования значения системной переменной TDUSRTIMER:

Код - C++: [Выделить]
  1. void ASDKgetTime()
  2. {
  3.   struct resbuf rUsrTime;
  4.   acedGetVar(_T("TDUSRTIMER"), &rUsrTime);
  5.  
  6.   AcDbDate testDate ;
  7.   testDate.setJulianFraction(rUsrTime.resval.rreal) ;
  8.   acutPrintf(_T("\nМинуты: %d\nСекунды: %d\nМиллисекунды: %d"),
  9.     testDate.minute (),
  10.     testDate.second (),
  11.     testDate.millisecond ());
  12. }

 

Источник: http://adndevblog.typepad.com/autocad/2013/01/converting-julian-dates.html

Источник: http://adndevblog.typepad.com/autocad/2013/01/about-tdusrtimer-and-acdbdate.html

 

Автор перевода: Александр Ривилис

Обсуждение: http://adn-cis.org/forum/index.php?topic=3295

Опубликовано 23.12.2015
Отредактировано 23.12.2015 в 15:15:07