Solved

Print current date and time in a file

Posted on 2004-04-16
7
641 Views
Last Modified: 2010-04-15
Hi,

My C program printing data in a file. Now, I need to add current date and time in a specific format. How would I do it? Is there any library function for that?

Here is what I print in a file:

fprintf(outfile,"id=1234\n");
fprintf(outfile,"frequnecy=34000\n");
fprintf(outfile,"name=michelle\n");

Now, I need to add current date and time in yymmdd hh:mm format.

forexample:

fprintf(outfile,"namedatetime=michelle date time\n");

So, it should print in a file like this (current date & time)

namedatetime=michelle 040416 10:47

Name (michelle) is constant, so don't need to worry about it. I will put michelle in print statement .

I will be really appreciated if you can help me in this.

Thanks,
John
0
Comment
Question by:John22
  • 3
  • 3
7 Comments
 
LVL 12

Expert Comment

by:stefan73
ID: 10843016
Hi John22,
Use strftime:

 #include <time.h>

     size_t strftime(const char *s, size_t  maxsize,  const  char
     *format, const struct tm *timeptr);


Cheers,
Stefan
0
 
LVL 12

Expert Comment

by:stefan73
ID: 10843055
Here is an example:

#include <time.h>

time_t now;
char timebuf[256];

now=time(0);
strftime(timebuf,"%y%m%d %H%M",localtime(now));

fprintf(outfile,"namedatetime=michelle %s\n",timebuf);


0
 
LVL 22

Accepted Solution

by:
NovaDenizen earned 100 total points
ID: 10843151
#include <time.h>

....

time_t now_secs;
struct tm now_breakout;
char buf[1024];
time(&now);
now_breakout = *(localtime(&now)); // or use localtime_r
strftime(buf, sizeof(buf), "%g%m%d %H:%M", &now_breakout);
fprintf(outfile, "namedatetime = michelle %s\n", buf);

Check the strftime man page if you want to change the format string.  For instance, if you want to avoid y2k issues and use a 4-digit year instead, replace the "%g" with "%G"


0
How to run any project with ease

Manage projects of all sizes how you want. Great for personal to-do lists, project milestones, team priorities and launch plans.
- Combine task lists, docs, spreadsheets, and chat in one
- View and edit from mobile/offline
- Cut down on emails

 
LVL 12

Expert Comment

by:stefan73
ID: 10843200
> strftime(timebuf,"%y%m%d %H%M",localtime(now));

should read

> strftime(timebuf,"%y%m%d %H%M",localtime(&now));

...as localtime expects a pointer.
0
 
LVL 22

Expert Comment

by:NovaDenizen
ID: 10843346
There's a mistake in my format fields.  The %g and %G give you the ISO 8601 bizarro year instead of the calender year, which you get through %y and %Y.  
0
 

Author Comment

by:John22
ID: 10844309
Thanks stefan73 and NovaDenizen.

I tried NovaDenizen code, but I got error. After I chaged time_t now_secs to time_t now and it worked fine.

I also tried stefan73. I also got error, but can't figure out. Here is the error:

cc -i test.c
"test.c", line 210: warning: improper pointer/integer combination: arg #1
"test.c", line 210: warning: improper pointer/integer combination: arg #2
"test.c", line 210: warning: argument #3 is incompatible with prototype:
        prototype: pointer to const char : "/usr/include/time.h", line 86
        argument : pointer to struct tm {int tm_sec, int tm_min, int tm_hour, int tm_mday, int tm_mon, int tm_year, int tm_wday, int tm_yday, i...
"test.c", line 210: prototype mismatch: 3 args passed, 4 expected
cc: acomp failed for test.c

Here is line 210:

strftime(timebuf,"%y%m%d %H%M",localtime(&now));

Thanks again.
John

0
 
LVL 22

Expert Comment

by:NovaDenizen
ID: 10844526
Don't forget to change my %g to %y.  It may give you the right answer now, but as soon as the financial year changes over it will give you the wrong answer.
0

Featured Post

What Is Threat Intelligence?

Threat intelligence is often discussed, but rarely understood. Starting with a precise definition, along with clear business goals, is essential.

Join & Write a Comment

Preface I don't like visual development tools that are supposed to write a program for me. Even if it is Xcode and I can use Interface Builder. Yes, it is a perfect tool and has helped me a lot, mainly, in the beginning, when my programs were small…
This tutorial is posted by Aaron Wojnowski, administrator at SDKExpert.net.  To view more iPhone tutorials, visit www.sdkexpert.net. This is a very simple tutorial on finding the user's current location easily. In this tutorial, you will learn ho…
Video by: Grant
The goal of this video is to provide viewers with basic examples to understand and use for-loops in the C programming language.
The goal of this video is to provide viewers with basic examples to understand and use conditional statements in the C programming language.

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now