sorting by date senile?
FlexibleLearning at aol.com
FlexibleLearning at aol.com
Wed Mar 9 12:01:03 EST 2005
> convert "01/03/1937" to dateitems
> I got invalid date ;(
>
> Maybe we should switch to stardate ;))
I can't offer Stardate to you, but Julian dates handle the number of days
since noon 4713 BC January 1. These were posted by _joel.guillod at net2000.ch_
(mailto:joel.guillod at net2000.ch) on 16 Apr 2004 and may provide you with the
tools... At least they avoid the 'invalid date' syndrome!
/* date.julian return the julian count, i.e. days since 24.11.-4713
@param d is the day
@param m is the month
@param y is the year
@returns is the julian count
*/
function date.julian d,m,y
return (1461*(y+4800+(m-14) div 12)) div 4+(367*(m-2-12*((m-14) div 12)))
div 12-(3*((y+4900.0+(m-14) div 12) div 100)) div 4+d-32075
end date.julian
Example:
answer date.julian 13,11,2001
/* get date.julian2DayOfWeek(aJulian)
@purpose Returns the day of the week according to: 1..7 for Sunday..Saturday
@param aJulian is the julian number.
*/
function date.julian2DayOfWeek aJulian
-- // returns 1..7 for Sunday..Saturday
return (aJulian+1) mod 7 + 1
end date.julian2DayOfWeek
Example:
answer date.julian2DayOfWeek 2452227
/* date.julian2DMY aJulian, at d, at m, at y
@purpose Set the day, month year according to the julian date aJulian.
*/
on date.julian2DMY aJulian, at d, at m, at y
put aJulian + 68569.0 into l
put ( 4 * l ) div 146097.0 into n
put l - ( 146097.0 * n + 3 ) div 4 into l
put ( 4000.0 * ( l + 1 ) ) div 1461001.0 into i -- (that's 1,461,001)
put l - ( 1461 * i ) div 4 + 31 into l
put ( 80 * l ) div 2447.0 into j
put l - ( 2447.0 * j ) div 80 into d -- day
put j div 11 into l
put j + 2 - ( 12 * l ) into m -- month
put 100 * ( n - 49 ) + i + l into y -- year
end date.julian2DMY
Example:
date.julian2DMY 2452227,d,m,y
answer d,m,y
/H
Hugh Senior
The Flexible Learning Company
Web: _www.FlexibleLearning.com_ (http://www.flexiblelearning.com/)
E: _h at flexiblelearning.com_ (mailto:h at flexiblelearning.com)
T/F: +44(0)1483.27 87 27
More information about the use-livecode
mailing list