标签:
/* ============================================================================ Name : Exercise.c Author : haier Version : 0.01 Copyright : Your copyright notice Description : Ansi-style, Compile by Code:Blocks, Platform Linux ============================================================================ */ #include <stdio.h> #include <stdlib.h> #include <string.h> #include <time.h> #define SECONDS_PER_DAY (60*60*24) typedef struct date { unsigned year; unsigned month; unsigned day; } Date; void nextDay(char *test) { struct tm time,*tm_ptr; time_t seconds; Date myDate; char *p; /*转换时间字符串*/ p = strtok(test, "/"); myDate.year=atoi(p); p = strtok(NULL, "/"); myDate.month=atoi(p); p = strtok(NULL, "/"); myDate.day=atoi(p); /*填充struct tm*/ time.tm_year = myDate.year - 1900; time.tm_mon = myDate.month - 1; time.tm_mday = myDate.day; time.tm_hour = 12; //默认为该日12:00:00 time.tm_min = 0; time.tm_sec = 0; seconds=mktime(&time)+SECONDS_PER_DAY; //转换tm结构为time_t类型值,并加一天 /*转换并打印日期*/ tm_ptr = gmtime(&seconds); printf("%d/%d/%d\n",tm_ptr->tm_year+1900, tm_ptr->tm_mon+1, tm_ptr->tm_mday); } int main() { char strTime[20]; printf("Please input the date : "); scanf("%s",strTime); nextDay(strTime); return 0; }
运行示例:
时间处理:计算下一天日期,如输入"2004/12/31"(注释2014年12月31日),则输出"2005/1/1".
标签:
原文地址:http://www.cnblogs.com/274914765qq/p/4331188.html