2011-01-18 4 views
3

Есть ли функция в Visual Basic 6, которая может быть использована для преобразования строки даты юлиана (99001-1st января 1999 года) в объект Date?VB6 Julian Date String to Date Объект

Я пробовал использовать CDate(), но результаты не так, как ожидалось.

Спасибо.

+0

'99001' ?? Как день и месяц закодированы в этом - есть только один '1'? Возможно, вы имели в виду '990101'? Какой день и какой месяц? Вы хотите, чтобы иметь возможность кодировать даты после 1999 года? То есть вас беспокоят проблемы 2000 года (http://en.wikipedia.org/wiki/Year_2000_problem)? Возможно, вам понадобится выбрать годовую стоимость, ниже которой вы предполагаете, что годы составляют 19 **, и выше, чем вы предполагаете, лет старше 20 **. Если у вас есть какой-либо контроль над форматом, я бы посоветовал 4-значные годы! – MarkJ

+0

Год выпуска: 99 и день года 001. Я думаю, год может также быть 2099. – Koekiebox

ответ

4

Я думаю, что следующее будет работать, просто введите свою юлианскую дату в переменную jd.

Dim dt as Date 
Dim jd as Long 
dt = DateSerial(1900 + Int(jd/1000), 1, jd Mod 1000) 
+1

http://en.wikipedia.org/wiki/Year_2000_problem – MarkJ

+0

Это сработало. Единственное, что 1900 год должен быть изменен на 2000 год. – Koekiebox

+0

@MarkJ: Я признаю, что прошло немного времени с тех пор, как я в последний раз смотрел на этот код :) –