如何用C更改和格式化日期



我想用天来增加日期。。。例如,如果今天是2015年5月27日,我加上6天,它应该打印2015年6月3日的

这是我的尝试:

   time_t now;
    struct tm *tm;
    now = time(0);
    if ((tm = localtime (&now)) == NULL) {
        printf ("Error extracting time stuffn");
        return 1;
    }
    printf ("%02d-%02d-%04dn", tm->tm_mday + 6, tm->tm_mon, tm->tm_year+1900);

这将超过

33-05-2015

还有我如何可以格式化这样的日期:

2015年6月27日

这样你就可以

#include <stdio.h>
#include <sys/time.h>
#include <time.h>
int
main(void)
 {
    struct timeval tv;
    char           str[12];
    struct tm     *tm;
    if (gettimeofday(&tv, NULL) == -1)
        return -1; /* error occurred */
    if ((tm = localtime(&tv.tv_sec)) != NULL)
     {
        /* Format as you want */
        strftime(str, sizeof(str), "%d-%b-%Y", tm);
        printf("Today                  : %sn", str);
     }
    tv.tv_sec += 6 * 24 * 3600; /* add 6 days converted to seconds */
    if ((tm = localtime(&tv.tv_sec)) != NULL)
     {
        /* Format as you want */
        strftime(str, sizeof(str), "%d-%b-%Y", tm);
        printf("After 6 days from today: %sn", str);
     }
    return 0;
 }

相关内容

  • 没有找到相关文章

最新更新