Deutsch   English   Français   Italiano  
<nnd$4c9fbd3d$321d37fb@0e0bb7c1bfc1d5fc>

View for Bookmarking (what is this?)
Look up another Usenet article

Newsgroups: comp.lang.forth
Subject: Re: Parsing timestamps?
References: <1f433fabcb4d053d16cbc098dedc6c370608ac01@i2pn2.org>
From: albert@spenarnc.xs4all.nl
X-Newsreader: trn 4.0-test77 (Sep 1, 2010)
Originator: albert@cherry.(none) (albert)
Message-ID: <nnd$4c9fbd3d$321d37fb@0e0bb7c1bfc1d5fc>
Organization: KPN B.V.
Date: Mon, 07 Oct 2024 13:00:10 +0200
Path: ...!2.eu.feeder.erje.net!feeder.erje.net!feeder1.feed.ams11.usenet.farm!feed.usenet.farm!feed.abavia.com!abe007.abavia.com!abp003.abavia.com!news.kpn.nl!not-for-mail
Lines: 45
Injection-Date: Mon, 07 Oct 2024 13:00:10 +0200
Injection-Info: news.kpn.nl; mail-complaints-to="abuse@kpn.com"
Bytes: 1948

In article <1f433fabcb4d053d16cbc098dedc6c370608ac01@i2pn2.org>,
dxf  <dxforth@gmail.com> wrote:
>Is there an easier way of doing this?  End goal is a double number
>representing centi-secs.
>
>
>empty decimal
>
>: SPLIT ( a u c -- a2 u2 a3 u3 )  >r 2dup r> scan 2swap 2 pick - ;
>: >INT ( adr len -- u )  0 0 2swap >number 2drop drop ;
>
>: /T ( a u -- $hour $min $sec )
>  2 0 do  [char] : split  2swap  dup if 1 /string then  loop
>  2 0 do  dup 0= if 2rot 2rot then  loop ;
>
>: .T  2swap 2rot  cr  >int . ." hr "  >int . ." min " >int . ." sec " ;
>
>s" 1:2:3"    /t .t
>s" 02:03"    /t .t
>s" 03"       /t .t
>s" 23:59:59" /t .t
>s" 0:00:03"  /t .t

After ca. 50 years I have completed the $@ $! $+! $C+ $/ with
$\ . Now I can do this

"12:03:43" &: $\ TYPE &: $\ TYPE &: $\ TYPE
43 03 12 OK

"12:03:43" &: $/ TYPE &: $/ TYPE &: $/ TYPE
12 03 43 OK

Insert
    "hr" TYPE
as required.

I can't believe the long posts this sparks.

Groetjes Albert
-- 
Temu exploits Christians: (Disclaimer, only 10 apostles)
Last Supper Acrylic Suncatcher - 15Cm Round Stained Glass- Style Wall
Art For Home, Office And Garden Decor - Perfect For Windows, Bars,
And Gifts For Friends Family And Colleagues.