w3resource

C Exercises: Convert a tm object to custom wide string textual representation

C Date Time: Exercise-5 with Solution

Write a program in C to convert a tm object to custom wide string textual representation.

Sample Solution:

C Code:

#include <stdio.h>
#include <time.h>
#include <wchar.h>
#include <locale.h>
 
int main(void)
{
    wchar_t buff[40];
    struct tm mytime = { .tm_year=116, // = year 2016
                          .tm_mon=8,    // = 9th month
                          .tm_mday=2,   // = 2nd day
                          .tm_hour=17,   // = 17 hours
                          .tm_min=51,   // = 51 minutes
                          .tm_sec=10    // = 10 secs
    };
     printf("\n The textual representation of specified date and time :\n"); 
    if (wcsftime(buff, sizeof buff, L"%A %c", &mytime)) {
        printf("\n%ls\n", buff);
    } else {
        puts("wcsftime failed");
    }
    setlocale(LC_ALL, "en_US.UTF-8");
    if (wcsftime(buff, sizeof buff, L"%A %c", &mytime)) {
        printf("%ls\n\n", buff);
    } else {
        puts("wcsftime failed");
    }
}

Sample Output:

 The textual representation of specified date and time :

Sunday 09/02/16 17:51:10
Sunday 09/02/16 17:51:10

Flowchart:

Flowchart: Convert a tm object to custom wide string textual representation

C Programming Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a program in C to convert a tm object to custom textual representation.
Next: Write a program in C to convert a time_t object to calendar time expressed as Coordinated Universal Time.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



C Programming: Tips of the Day

How I can print to stderr in C?

The syntax is almost the same as printf. With printf you give the string format and its contents i.e.:

printf("my %s has %d chars\n", "string format", 30);

With fprintf it is the same, except now you are also specifying the place to print to:

File *myFile;
...
fprintf( myFile, "my %s has %d chars\n", "string format", 30);

Or in your case:

fprintf( stderr, "my %s has %d chars\n", "string format", 30);

Ref : https://bit.ly/3v5U8Zq