n7kon
asked on
date conversion
I need a way to convert a Julian date to a standard date. I am connected to an AS400 table that holds Julian dates and would like to convert those dates on a form to a standard date that makes sense to my users.
Hello n7kon,
Here are two functions you could use. The first one converts calendar date to Julian date, second Julian date to calendar date.
'************************* ********** ********** ********** *
' Public Function DateToJulian( dtmDate )
' Converts the passed calendar date to a Julian date
' number.
'************************* ********** ********** ********** *
Public Function DateToJulian(dtmDate As Date) As Long
DateToJulian = (dtmDate - #1/1/100#) + 1757585
End Function
'************************* ********** ********** ********** *
' Public Function JulianToDate( lngJulian )
' Converts the passed julian date number to a calendar
' date
'************************* ********** ********** ********** *
Public Function JulianToDate(lngJulian As Long) As Date
JulianToDate = lngJulian - 1757585 + #1/1/100#
End Function
Regards,
Paasky
Here are two functions you could use. The first one converts calendar date to Julian date, second Julian date to calendar date.
'*************************
' Public Function DateToJulian( dtmDate )
' Converts the passed calendar date to a Julian date
' number.
'*************************
Public Function DateToJulian(dtmDate As Date) As Long
DateToJulian = (dtmDate - #1/1/100#) + 1757585
End Function
'*************************
' Public Function JulianToDate( lngJulian )
' Converts the passed julian date number to a calendar
' date
'*************************
Public Function JulianToDate(lngJulian As Long) As Date
JulianToDate = lngJulian - 1757585 + #1/1/100#
End Function
Regards,
Paasky
seems that the suggestions are posted before the question was here...
Question time: Saturday, March 11 2000 - 05:54PM EET
BrianWren's comment: Saturday, March 11 2000 - 05:17PM EET
My comment: Saturday, March 11 2000 - 05:27PM EET
?-)
Question time: Saturday, March 11 2000 - 05:54PM EET
BrianWren's comment: Saturday, March 11 2000 - 05:17PM EET
My comment: Saturday, March 11 2000 - 05:27PM EET
?-)
oops.. forgot to post functions to convert Long to Date (and vice versa). Here they are:
'************************* ********** ********** ********** *
' Public Function DateToNumericDayYear(dtmDa te As Date)
' Converts the passed date to the numeric day of the year
' (1-366)
'************************* ********** ********** ********** *
Public Function DateToNumericDayYear(dtmDa te As Date) As Integer
DateToNumericDayYear = dtmDate - _
DateSerial(DatePart("yyyy" , dtmDate), 1, 1) + 1
End Function
'************************* ********** ********** ********** *
' Public Function NumericDayYearToDate( intNum )
' Converts the numeric day of the year (1-366) to a
' calendar date
' in the current year
'************************* ********** ********** ********** *
Public Function NumericDayYearToDate(intNu m)
NumericDayYearToDate = DateSerial(DatePart("yyyy" , Date), 1, 1) + intNum - 1
End Function
These functions are not made be me, the original source code is written by Sal Ricciardi.
Regards,
Paasky
'*************************
' Public Function DateToNumericDayYear(dtmDa
' Converts the passed date to the numeric day of the year
' (1-366)
'*************************
Public Function DateToNumericDayYear(dtmDa
DateToNumericDayYear = dtmDate - _
DateSerial(DatePart("yyyy"
End Function
'*************************
' Public Function NumericDayYearToDate( intNum )
' Converts the numeric day of the year (1-366) to a
' calendar date
' in the current year
'*************************
Public Function NumericDayYearToDate(intNu
NumericDayYearToDate = DateSerial(DatePart("yyyy"
End Function
These functions are not made be me, the original source code is written by Sal Ricciardi.
Regards,
Paasky
Believer, not BrianWren.. maybe I need new glasses. Sorry confusion.
I was reading the thread, and wondered how I managed to not only answer before the question was asked, but additionally I appeared to have answered before I answered!!! :-/ hmmm...
The server for EE always gives a post time that is an hour late. When we 'leap ahead,' I suspect that it will be right finally, (for about half a year...)
Brian
The server for EE always gives a post time that is an hour late. When we 'leap ahead,' I suspect that it will be right finally, (for about half a year...)
Brian
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Welcome To Experts Exchange viveka!
It is customary to not Answer a question unless you are 120% sure it will completely address the question. When the question is answered, it gets moved into the Locked Section, thus reducing the potential responses.
If you post your response as a comment, then the question gets more visibility in the Unanswered Section. If the asker feels that your comment is an appropriate response for their question they have the ability of accepting it as an answer and awarding you the points.
Also we have a customary here in Access Topic that experts post all their suggestions as comments.
----
I think your suggestion and information provided in your posting is very valuable to both the customer and experts, thank you. Would you please change your answer to comment.
Best regards,
Paasky
It is customary to not Answer a question unless you are 120% sure it will completely address the question. When the question is answered, it gets moved into the Locked Section, thus reducing the potential responses.
If you post your response as a comment, then the question gets more visibility in the Unanswered Section. If the asker feels that your comment is an appropriate response for their question they have the ability of accepting it as an answer and awarding you the points.
Also we have a customary here in Access Topic that experts post all their suggestions as comments.
----
I think your suggestion and information provided in your posting is very valuable to both the customer and experts, thank you. Would you please change your answer to comment.
Best regards,
Paasky
ASKER
Thanks for all the help. vivekas answer works and so dose paasky. If I knew how I would increas and split the points. As a new user here I am not sure if that can be done. But Thanks to Both.
Hello n7kon,
Happy to help you.
You can post a request to EE Community support if you want to split the points ( https://www.experts-exchange.com/Customer_Service/Experts_Exchange/ )
Sometimes customers post extra question to give points for expert who has helped him/her, subject: For <expert> (Q.99999999)
regards,
paasky
Happy to help you.
You can post a request to EE Community support if you want to split the points ( https://www.experts-exchange.com/Customer_Service/Experts_Exchange/ )
Sometimes customers post extra question to give points for expert who has helped him/her, subject: For <expert> (Q.99999999)
regards,
paasky
Function JulianToNormal(strJulian As String) As Date
Dim strYear As String
Dim intDays As Integer
Dim datResult As Date
'Extract the year
strYear = Left$(strJulian, 2)
'Extract the number of days
intDays = CInt(Right(strJulian, 3))
'Start with January 1 of the year
datResult = CDate("1/1/" & strYear)
'Add number of days - 1
datResult = DateAdd("d", intDays - 1, datResult)
JulianToNormal = datResult
End Function
Note: year 00-29 is 2000-2029, 30-99=1930-1999