C Exercises: Print the date and time before 24 months

C Date Time: Exercise-8 with Solution

Write a program in C to print the date and time before 24 months.

Sample Solution:

C Code:

#define _POSIX_C_SOURCE 200112L 
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main(void)
    setenv("TZ", "/usr/share/zoneinfo/Asia/Calcutta", 1);   
    struct tm tm = *localtime(&(time_t){time(NULL)});
    printf("\nToday is :          %s", asctime(&tm));
    printf("(DST is %s)\n", tm.tm_isdst ? "in effect" : "not in effect");
    tm.tm_mon -= 24;  
    printf("\n24 months ago the date was : %s", asctime(&tm));
    printf("(DST was %s)\n\n", tm.tm_isdst ? "in effect" : "not in effect");

Sample Output:

Today is :          Thu Aug  3 17:27:16 2017                                                                                  
(DST is not in effect)                                                                                                        
24 months ago the date was : Mon Aug  3 17:27:16 2015                                                                         
(DST was not in effect) 

N.B.: The result may varry for your current system date and time.


Flowchart: Print the date and time before 24 months

C Programming Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a program in C to convert a time_t object to calendar time expressed as local time.
Next: Write a program in C to show the first of calendar 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