Jump to content

Tijden weergeven h:mm ipv h:mm:ss


menno

Recommended Posts

Je hebt het vast wel eens meegemaakt: je hebt werktijden bijgehouden en je moet er een overzichtje van maken. Sommige tijden heb je met de hand ingegeven en sommige zijn op de een of andere manier automatisch ingevoerd. Je haalt uit de verschillende velden gegevens en je bewerkt helemaal niets en dan krijg je:

Peter	21-12-2013	15:30:00 - 19:10:00
Klaas	22-12-2013	 8:45:23 -  9:11:11
Janus	23-12-2013	 7:30:00 - 11:15:00

terwijl je wilt hebben:

Peter	21-12-2013	15:30 - 19:10
Klaas	22-12-2013	 8:45 -  9:11
Janus	23-12-2013	 7:30 - 11:15

Nu kan je als je wilt de tijden wel ophalen door in een script of aan de roosterregels een berekening toe te voegen zoals bijvoorbeeld:

Hour( tijd ) & ":" & Minute( tijd ) etc.

Maar je kan ook eerst op je gemak eenvoudig alle gegevens aan elkaar plakken (door bv alles eerst met executesql op te halen) en met de custom-functie CF_TimeFilter ( txt ; i ) het resultaat in één keer omzetten:

Let ( [ 
n = i + 1 ; 
c = WordCount ( txt ) ; 
tm = MiddleWords ( txt ; n ; 1 ) ; 
new_tm = Middle ( tm ; 1 ; Length ( tm ) - If ( PatternCount ( tm ; ":" ) = 2 and tm = Filter ( tm ; "0123456789:" ) and ( Length ( tm ) = 7 or Length ( tm ) = 8 ) ; 3 ) ) ; 
new_txt = Substitute ( txt ; [ tm ; new_tm ] ) 
] ; 
If ( n ≥ c ; new_txt ; CF_TimeFilter ( new_txt ; n ) )
)

De functie knipt rücksichtslos de seconden weg van alle tijden die hij in je tekst tegenkomt.

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...