List Info

Thread: getdate(3) - format date




getdate(3) - format date
user name
2006-09-22 07:28:16
Array
getdate(3) - format date
user name
2006-09-22 20:40:16
Yes Steve!
The problem was the absence of both DATEMSK and the template
file becouse
the getdate_err was setted to 1.
Now I have tried your script but it does not exports the
DATEMSK to the
environment: if next the execution of the script I type
echo $DATEMSK
it prints nothing.
If I execute the C program from the script it runs but the
getdate_err said that there
is no line in the template that matches the input [error 7].
I believe that the getdate solution is very unportable.
Thanks anyway!

On Friday 22 September 2006 09:28, Steve Graegert wrote:
> On 9/21/06, HIToC <hitoc_mailyahoo.it> wrote:
> > Hello list,
> > I am using the getdate(3) function to convert a
string date in its tm
> > structure, but I have tried several formats of
string-dates and it always
> > returns a NULL pointer.
> >
> > All this dates I suppose invalid for the
getdate(3):
> > Fri, 19 Nov 82 16:14:55 EST
> > Wed, 20 Sep 2006 15:03:53 GMT
> > Thu, 21 Sep 2006 08:59:25 +0400
> > 19 Sep 2006 15:52:25 -0700
> > 19 Sep 2006 15:52:25 EST
>
> Sure, they are valid, but getdate(3) requires a
template file to be
> present, with each line in the file representing a date
format to
> parse.  From getdate(3):
>
>      User-supplied templates are used to parse and
interpret  the
>      input  string.  The templates are  text files
created by the
>      user and identified via the  environment  variable
 DATEMSK.
>      Each  line  in  the  template  represents an
acceptable date
>      and/or time specification using   conversion 
specifications
>      similar  to  those  used  by  strftime(3) and
strptime(3).
>
> Consider the following example which illustrates the
usage of getdate(3)
>
> --- BEGIN script ---
>
> #!/bin/sh
> #
> # create template file
> #
> cat >.date <<EOF
> %m
> %A %B %d, %Y, %H:%M:%S
> %A
> %B
> %m/%d/%y %I %p
> %d, %m, %Y %H:%M
> at %A the %dst of %B in %Y
> run job at %I %p, %B %dnd
> &A den %d. %B %Y %H.%M Uhr
> EOF
> DATEMSK=.date
> export DATEMSK
>
> --- END script ---
>
> --- BEGIN C Source ---
>
> #include <stdio.h>
> #include <time.h>
>
> #define BUF	512
>
> void daterr(int err) {
> 	switch(err) {
>         case 1: printf("The DATEMSK environment
variable is null or
> undefined.n");
>             break;
>
>         case 2: printf("The template file cannot
be opened for
> reading.n"); break;
>
>         case 3: printf("Failed to get file status
information.n");
>             break;
>
>         case 4: printf("The template file is not a
regular file.n");
>             break;
>
>         case 5: printf("An error is encountered
while reading the
> template file.n");
>             break;
>
>         case 6: printf("Memory allocation failed
(not enough memory
> available.n");
>             break;
>
>         case 7: printf("There is no line in the
template that matches
> the input.n");
>             break;
>
>         case 8: printf("Invalid input
specificationn");
>             break;
>
>         default:	printf("unknownn");
> 	}
>
> 	exit(1);
> }
>
> int main(void) {
> 	struct tm *tm;
> 	char buf[BUF];
>
> 	tm = getdate("09/22/06");
>
> 	if (getdate_err != 0)
>         	daterr(getdate_err);
>
> 	strftime(buf,BUF,"%a %Y %H:%M:%Sn",tm);
> 	printf("%s",buf);
>
> 	return 1;
> }
>
> --- END C Source ---
>
> 	Steve

-- 
With regards,


					HIToC
					hitoc_mailyahoo.it
-
To unsubscribe from this list: send the line
"unsubscribe linux-c-programming" in
the body of a message to majordomovger.kernel.org
More majordomo info at  http://vge
r.kernel.org/majordomo-info.html
[1-2]

about | contact  Other archives ( Real Estate discussion Medical topics )