Re: formatDate() Function Update

2024-02-28 Thread Phil Hudson via use-livecode
Very useful function, thanks for sharing.

I believe the format you call "SQL format" is literally *the* standard
format, as in ISO 8601.

https://www.startpage.com/do/dsearch?query=iso+date+format=web=opensearch=english

I'd suggest "North American format" for the other one, assuming they
use it in Mexico too. Otherwise I'm at a loss.

On Wed, 28 Feb 2024 at 18:44, Bob Sneidar via use-livecode
 wrote:
>
> Not to be confused with the built-in dateFormat() function, I wrote a special 
> formatDate() function a few years back because I had a need to get a given 
> date in unsupported formats. Particularly I needed an SQL Date format in the 
> form of -mm-dd.
>
> I have been frustrated also that there is no built-in function to return a 
> date in the mm/dd/ format, so I just updated my function to include that 
> form using “standard date” as the format parameter. (I can’t think what else 
> to call it. "Y2K Date” seems cheesy.)
>
> Here is the code if anyone is interested. I should also submit it to the 
> Master Library. I will have to grok how to do that again.
>
> Bob S
>
>
>
> FUNCTION formatDate theDate, theFormat
>/*
>Accepts any valid date for the first parameter. If not a valid date, it 
> simply returns
>what was passed. Second parameter can be any of the following:
>sql date: date in the -mm-dd format
>short date, abbreviated date, internet date, long date: LC versions of the 
> same
>julian date: Julian number based on (I believe) Jacques formula
>standard date: The date in the form of theFormat
>*/
>
>put theDate into tSavedDate
>put the itemdelimiter into theOldDelim
>set the itemdelimiter to "-"
>
>IF the length of item 1 of theDate = 4 AND \
>  the number of items of theDate = 3 AND \
>  item 1 of theDate is a number AND \
>  item 2 of theDate is a number AND \
>  item 3 of theDate is a number THEN
>   put item 2 of theDate & "/" & \
> item 3 of theDate & "/" & \
> item 1 of theDate into theDate
>END IF
>
>-- replace "." with "/" in theDate
>convert theDate to dateitems
>set the itemdelimiter to theOldDelim
>
>if the number of items of theDate <> 7 then
>   answer "'" & theDate & "' is not a valid date format!"
>   return tSavedDate
>end if
>
>SWITCH theFormat
>   CASE "sql date"
>  /*
>  put item 1 of theDate & "-" & \
>format("%02d",item 2 of theDate) & "-" & \
>format("%02d",item 3 of theDate) into theDate
>  */
>  put format("%s-%02d-%02d", item 1 of theDate, item 2 of theDate, \
>item 3 of theDate) into theDate
>  break
>   CASE "short date"
>  convert theDate from dateitems to short date
>  break
>   CASE "abbreviated date"
>  convert theDate from dateitems to abbreviated date
>  break
>   CASE "abbr date"
>  convert theDate from dateitems to abbreviated date
>  break
>   CASE "internet date"
>  convert theDate from dateitems to internet date
>  break
>   CASE "long date"
>  convert theDate from dateitems to long date
>  break
>   CASE "julian date"
>  put the date into theDate
>  convert theDate to dateItems
>  IF  ((item 2 of theDate = 1) OR (item 2 of theDate = 2)) THEN
> put 1 into theDay
>  ELSE
> put 0 into theDay
>  END IF
>  put item 1 of theDate + 4800 - theDay into theYear
>  put item 2 of theDate + (12 * theDay) - 3 into theMonth
>  put item 3 of theDate + \
>((153 * theMonth + 2) div 5) + \
>(365 * theYear) + \
>(theYear div 4) - \
>(theYear div 100) + \
>(theYear div 400) - \
>32045 into theDate
>  break
>   case "standard date"
>  put format("%02d/%02d/%04d", item 2 of theDate, item 3 of theDate, \
>item 1 of theDate) into theDate
>  break
>   default
>  Answer info “‘“ & theFormat & “‘ is not a validate parameter.” As 
> sheet
>  put tSavedDate into theDate
>END SWITCH
>
>return theDate
> END formatDate
>
> ___
> use-livecode mailing list
> use-livecode@lists.runrev.com
> Please visit this url to subscribe, unsubscribe and manage your subscription 
> preferences:
> http://lists.runrev.com/mailman/listinfo/use-livecode

___
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode


Re: formatDate() Function Update

2024-02-28 Thread Bob Sneidar via use-livecode
Should read:


standard date: The date in the form of "mm/dd/"

On Feb 28, 2024, at 10:42 AM, Bob Sneidar via use-livecode 
 wrote:

  standard date: The date in the form of theFormat

___
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode