C 获取编译日期函数

#include <stdio.h>
#include
<stdlib.h>
#include
<malloc.h>
#include
<string.h>
typedef
struct tagXDate
{
int year;
int month;
int day;
}XDate;
bool GetCompileDate(XDate* date)
{
bool succeed=true;
char* complieDate=(char*)malloc(strlen(__DATE__)+1);
strcpy_s(complieDate,strlen(__DATE__)
+1,__DATE__);
char* context;
char* month=strtok_s(complieDate," ",&context);
char* day=strtok_s(0," ",&context);
char* year=strtok_s(0," ",&context);
date
->day=atoi(day);
if (date->day==0)
{
succeed
=false;
goto cleanup;
}
date
->year=atoi(year);
if (date->year==0)
{
succeed
=false;
goto cleanup;
}
const char months[][4]={"Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"};
date
->month=0;
for (int i=0;i<12;i++)
{
if (strcmp(month,months[i])==0)
{
date
->month=i+1;
break;
}
}
if (date->month==0)
{
succeed
=false;
goto cleanup;
}
cleanup:
free(complieDate);
return succeed;
}
int main()
{
XDate date;
if (!GetCompileDate(&date))
{
return -1;
}
printf(
"%04d年%02d月%02d日/n",date.year,date.month,date.day);
return 0;
}

  

转载于:https://www.cnblogs.com/oyjj/archive/2011/04/24/2132874.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现输入今天的日期,然后输出明天的日期,可以使用C语言中的日期间库函数来实现。 首先,我们需要包含<time.h>头文件以使用日期间相关的函数。 然后,我们可以使用time_t和tm来存储日期间。time_t是从19701月1日00:00:00开始计算的秒数,tm结构体包含了、月、日等详细的日期信息。 接下来,我们可以使用time函数获取当前间的time_t值,并使用localtime函数将其转换为tm结构体,获取到今天的日期信息。 然后,我们可以将今天的日期信息进行处理,将日期加1。由于日期是以0开始计算的,所以将今天的日期加1就可以得到明天的日期。 最后,我们可以使用strftime函数将明天的日期格式化为字符串,并输出出来。 以下是实现该功能的示例代码: ```c #include <stdio.h> #include <time.h> int main() { time_t now; struct tm *today; char tomorrow[11]; // 获取当前间 time(&now); // 转换为当地间 today = localtime(&now); // 日期加1 today->tm_mday += 1; // 转换为time_t值 time_t tomorrowTime = mktime(today); // 格式化为字符串 strftime(tomorrow, sizeof(tomorrow), "%Y-%m-%d", localtime(&tomorrowTime)); // 输出明天的日期 printf("明天的日期是:%s\n", tomorrow); return 0; } ``` 编译并运行该程序,输入今天的日期,即可输出明天的日期。例如,输入"2022-05-21",则输出"明天的日期是:2022-05-22"。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值