Calculate the current date.

Give your an integer (e.g. 0x0076f676) representing the number of minutes elapsed since January 1, 1996.
How to calculate the current date which format should be "year-month-day-hour-minutes" ?

I'm not quite following this.

Are you saying you want to work out what the current year month and day is from the number of minutes elapsed since January 1, 1996?

This looked interesting, if a bit like homework. Tinker with this:

//Give your an integer (e.g. 0x0076f676) representing the number of minutes elapsed since January 1, 1996. 
//How to calculate the current date which format should be "year-month-day-hour-minutes" ?
// jan1.c
// usage:  ./jan1 0x0012345

#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <strings.h>

time_t jan_1_1996(void)  // create artificial epoch seconds 
{
    struct tm j;
    j.tm_year= 1996 - 1900;
    j.tm_mon= 0;
    j.tm_mday=1;
    j.tm_hour=0;
    j.tm_min= 0;
    j.tm_sec= 0;
    j.tm_isdst=0;
    return (time_t)mktime(&j);
}

time_t
hex2dec(const char *hex)
{
    const char *p=hex;
    if(memcmp(p, "0x", 2)== 0) 
       p+=2;
    return (time_t) strtol(hex, (char **)0, 16);
}

void
get_date(const char *hex)
{
    time_t elapsed= jan_1_1996();
    char tmp[80]={0x0};
    elapsed+=( 60 * hex2dec(hex));
    strftime(tmp,80, "%Y-%m-%d-%H-%M", localtime(&elapsed) );
    printf("Corrected date is for %s: %s\n", hex, tmp);
}

int main(int argc, char **argv)
{
    if(argc==2)
      get_date(argv[1]);
    return 0;  
}

There is NO error checking in this code at all. Not meant for production systems.

If you don't care about what language to use, Perl would be much easier.

#!/usr/bin/perl

use POSIX;

$t = mktime(0, 0, 0, 1, 0, 96);
$i = 0x0076f676 * 60;
$s = strftime "%Y-%m-%d-%H-%M", localtime($t + $i);
print "$s\n";