Parse strings like "day-1" to convert in a time stamp

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Parse strings like "day-1" to convert in a time stamp

Marcos Douglas B. Santos
Do you know any Pascal lib to parse strings to convert in date/time values?
The user is supposed to type human-friendly values like:
- "day"    => trunc(now)
- "day-2" => trunc(now-2)
- "week" => trunc(now-7)
- "yesterday" => trunc(now-1)
- etc... 
But they could type even their computer date format or ISO as well.

A lib in C, but very complex:

I would like to start with something simpler, if possible. Thank you.

Best regards,
Marcos Douglas

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Parse strings like "day-1" to convert in a time stamp

Free Pascal - General mailing list
Marcos Douglas B. Santos <[hidden email]> schrieb am So., 14. Okt. 2018, 16:15:
Do you know any Pascal lib to parse strings to convert in date/time values?
The user is supposed to type human-friendly values like:
- "day"    => trunc(now)
- "day-2" => trunc(now-2)
- "week" => trunc(now-7)
- "yesterday" => trunc(now-1)
- etc... 
But they could type even their computer date format or ISO as well.

A lib in C, but very complex:

I would like to start with something simpler, if possible. Thank you.

I don't know a specific library that fulfills your needs, but maybe you can build something atop of FpExprPars: http://wiki.lazarus.freepascal.org/How_To_Use_TFPExpressionParser
At least according to the source it also supports datetime handling. 

Regards, 
Sven 

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Parse strings like "day-1" to convert in a time stamp

Michael Van Canneyt


On Mon, 15 Oct 2018, Sven Barth via fpc-pascal wrote:

> Marcos Douglas B. Santos <[hidden email]> schrieb am So., 14. Okt. 2018,
> 16:15:
>
>> Do you know any Pascal lib to parse strings to convert in date/time values?
>> The user is supposed to type human-friendly values like:
>> - "day"    => trunc(now)
>> - "day-2" => trunc(now-2)
>> - "week" => trunc(now-7)
>> - "yesterday" => trunc(now-1)
>> - etc...
>> But they could type even their computer date format or ISO as well.
>>
>> A lib in C, but very complex:
>> - https://github.com/gagern/gnulib/blob/master/lib/parse-datetime.y
>>
>> I would like to start with something simpler, if possible. Thank you.
>>
>
> I don't know a specific library that fulfills your needs, but maybe you can
> build something atop of FpExprPars:
> http://wiki.lazarus.freepascal.org/How_To_Use_TFPExpressionParser
> At least according to the source it also supports datetime handling.

It does, it's used (amongst other things) in the reporting engine;

Michael.
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Parse strings like "day-1" to convert in a time stamp

Marcos Douglas B. Santos
On Sun, Oct 14, 2018 at 8:19 PM Michael Van Canneyt
<[hidden email]> wrote:

>
>
>
> On Mon, 15 Oct 2018, Sven Barth via fpc-pascal wrote:
>
> > Marcos Douglas B. Santos <[hidden email]> schrieb am So., 14. Okt. 2018,
> > 16:15:
> >
> >> Do you know any Pascal lib to parse strings to convert in date/time values?
> >> The user is supposed to type human-friendly values like:
> >> - "day"    => trunc(now)
> >> - "day-2" => trunc(now-2)
> >> - "week" => trunc(now-7)
> >> - "yesterday" => trunc(now-1)
> >> - etc...
> >> But they could type even their computer date format or ISO as well.
> >>
> >> A lib in C, but very complex:
> >> - https://github.com/gagern/gnulib/blob/master/lib/parse-datetime.y
> >>
> >> I would like to start with something simpler, if possible. Thank you.
> >>
> >
> > I don't know a specific library that fulfills your needs, but maybe you can
> > build something atop of FpExprPars:
> > http://wiki.lazarus.freepascal.org/How_To_Use_TFPExpressionParser
> > At least according to the source it also supports datetime handling.

Thanks, Sven.

>
> It does, it's used (amongst other things) in the reporting engine;

Michael,
But does it work using just date values - accordingly with date format
in OS - or also with "day", "tomorrow", etc?
If not, can I extend those classes without change the original ones?

Regards,
Marcos Douglas
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Parse strings like "day-1" to convert in a time stamp

Michael Van Canneyt
> On Sun, Oct 14, 2018 at 8:19 PM Michael Van Canneyt
> <[hidden email]> wrote:
>>
>>
>>
>> On Mon, 15 Oct 2018, Sven Barth via fpc-pascal wrote:
>>
>> > Marcos Douglas B. Santos <[hidden email]> schrieb am So., 14. Okt.
>> 2018,
>> > 16:15:
>> >
>> >> Do you know any Pascal lib to parse strings to convert in date/time
>> values?
>> >> The user is supposed to type human-friendly values like:
>> >> - "day"    => trunc(now)
>> >> - "day-2" => trunc(now-2)
>> >> - "week" => trunc(now-7)
>> >> - "yesterday" => trunc(now-1)
>> >> - etc...
>> >> But they could type even their computer date format or ISO as well.
>> >>
>> >> A lib in C, but very complex:
>> >> - https://github.com/gagern/gnulib/blob/master/lib/parse-datetime.y
>> >>
>> >> I would like to start with something simpler, if possible. Thank you.
>> >>
>> >
>> > I don't know a specific library that fulfills your needs, but maybe
>> you can
>> > build something atop of FpExprPars:
>> > http://wiki.lazarus.freepascal.org/How_To_Use_TFPExpressionParser
>> > At least according to the source it also supports datetime handling.
>
> Thanks, Sven.
>
>>
>> It does, it's used (amongst other things) in the reporting engine;
>
> Michael,
> But does it work using just date values - accordingly with date format
> in OS - or also with "day", "tomorrow", etc?
> If not, can I extend those classes without change the original ones?

All depends on the exact format you want to use.
day -1
can be easily implemented by registering a function day, which returns teh
same Date()

double quotes are supported as delimiters for identifiers, so "Day" should
work, but a date literal is going to be tricky.

Michael.

_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal
Reply | Threaded
Open this post in threaded view
|

Re: Parse strings like "day-1" to convert in a time stamp

Marcos Douglas B. Santos
On Mon, Oct 15, 2018 at 9:33 AM Michael Van Canneyt
<[hidden email]> wrote:

>
> > On Sun, Oct 14, 2018 at 8:19 PM Michael Van Canneyt
> > <[hidden email]> wrote:
> >>
> >>
> >>
> >> On Mon, 15 Oct 2018, Sven Barth via fpc-pascal wrote:
> >>
> >> > Marcos Douglas B. Santos <[hidden email]> schrieb am So., 14. Okt.
> >> 2018,
> >> > 16:15:
> >> >
> >> >> Do you know any Pascal lib to parse strings to convert in date/time
> >> values?
> >> >> The user is supposed to type human-friendly values like:
> >> >> - "day"    => trunc(now)
> >> >> - "day-2" => trunc(now-2)
> >> >> - "week" => trunc(now-7)
> >> >> - "yesterday" => trunc(now-1)
> >> >> - etc...
> >> >> But they could type even their computer date format or ISO as well.
> >> >>
> >> >> A lib in C, but very complex:
> >> >> - https://github.com/gagern/gnulib/blob/master/lib/parse-datetime.y
> >> >>
> >> >> I would like to start with something simpler, if possible. Thank you.
> >> >>
> >> >
> >> > I don't know a specific library that fulfills your needs, but maybe
> >> you can
> >> > build something atop of FpExprPars:
> >> > http://wiki.lazarus.freepascal.org/How_To_Use_TFPExpressionParser
> >> > At least according to the source it also supports datetime handling.
> >
> > Thanks, Sven.
> >
> >>
> >> It does, it's used (amongst other things) in the reporting engine;
> >
> > Michael,
> > But does it work using just date values - accordingly with date format
> > in OS - or also with "day", "tomorrow", etc?
> > If not, can I extend those classes without change the original ones?
>
> All depends on the exact format you want to use.
> day -1
> can be easily implemented by registering a function day, which returns teh
> same Date()

So I can register those identifiers as functions, cool!

> double quotes are supported as delimiters for identifiers, so "Day" should
> work, but a date literal is going to be tricky.

Maybe I can test the value first if it is a valid date format, before
try to use FpExprPars on it...
It looks like a good start, though. Thanks.

regards,
Marcos Douglas
_______________________________________________
fpc-pascal maillist  -  [hidden email]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal