Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2005.08.14;
Скачать: [xml.tar.bz2];

Вниз

Вопрос по Юлианской дате   Найти похожие ветки 

 
vigo   (2005-07-27 17:39) [0]

Добрый день! Если кто работал с Юлианской датой подскажите как её "получить". И наоборот перевести в обычный формат.


 
han_malign ©   (2005-07-27 17:54) [1]

DateUtils.pas:

function DateTimeToJulianDate(const AValue: TDateTime): Double;
var
 LYear, LMonth, LDay: Word;
begin
 DecodeDate(AValue, LYear, LMonth, LDay);
 Result := (1461 * (LYear + 4800 + (LMonth - 14) div 12)) div 4 +
           (367 * (LMonth - 2 - 12 * ((LMonth - 14) div 12))) div 12 -
           (3 * ((LYear + 4900 + (LMonth - 14) div 12) div 100)) div 4 +
           LDay - 32075.5 + Frac(AValue);
end;

function JulianDateToDateTime(const AValue: Double): TDateTime;
begin
 if not TryJulianDateToDateTime(AValue, Result) then
   raise EConvertError.CreateFmt(SInvalidJulianDate, [AValue]);
end;

function TryJulianDateToDateTime(const AValue: Double;
 out ADateTime: TDateTime): Boolean;
var
 L, N, LYear, LMonth, LDay: Integer;
begin
 L := Trunc(AValue) + 68570;
 N := 4 * L div 146097;
 L := L - (146097 * N + 3) div 4;
 LYear := 4000 * (L + 1) div 1461001;
 L := L - 1461 * LYear div 4 + 31;
 LMonth := 80 * L div 2447;
 LDay := L - 2447 * LMonth div 80;
 L := LMonth div 11;
 LMonth := LMonth + 2 - 12 * L;
 LYear := 100 * (N - 49) + LYear + L;
 Result := TryEncodeDate(LYear, LMonth, LDay, ADateTime);
 if Result then
   ADateTime := ADateTime + Frac(AValue) - 0.5;
end;


 
vigo   (2005-07-27 18:16) [2]

Так, например, юлианскую дату в нормальную перевсти получается не хитро: ShowMessage(""+FormatDateTime("ddmm", 209)+""); // показывает 27.07
А вот наоборот не получается: ShowMessage(""+DateToStr(DateTimeToJulianDate(Now))+""); // показывает 01.09.8617



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2005.08.14;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.44 MB
Время: 0.01 c
1-1122023678
DimaBr
2005-07-22 13:14
2005.08.14
Handle окна компонента


14-1120413328
Soft
2005-07-03 21:55
2005.08.14
Какую CMS использовать?


1-1121423160
Виталька2005
2005-07-15 14:26
2005.08.14
Обработка текста в MaskEdit


6-1115420411
АНТИСпаммер
2005-05-07 03:00
2005.08.14
Как написать плагин для ie на Delphi ?


1-1122292466
Trenno
2005-07-25 15:54
2005.08.14
извлечение ZIP





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский