gpt4 book ai didi

C - 计算从 X 年到 Y 年的所有日期

转载 作者:太空宇宙 更新时间:2023-11-04 06:40:40 26 4
gpt4 key购买 nike

请忽略,无能是最好的!

只是搞乱了一些基本的文件输入/输出,在一些嵌套的 for 循环中,但输出并不是我想要的,尽管我似乎无法让它工作。

#include <stdio.h>

int main(void) {
FILE *pFile;
pFile = fopen("dates.txt", "w");
int day, month, year;
for(day = 1; day <= 31; day++) {
for(month = 1; month <= 12; month++) {
for(year = 1900; year <= 2050; year++) {
if(day < 10 && month < 10) {
fprintf(pFile, "0%d/0%d/%d\n", day, month, year);
}else {
fprintf(pFile, "%d/%d/%d\n", day, month, year);
}
}
}
}
return 0;
}

非常感谢任何提示!请注意,这不是家庭作业,只是一些实验。

干杯。

最佳答案

您可以使用 mktime创建一个日期。然后向其添加 1 天并创建下一个日期。这样您就可以迭代。

以下代码显示前 200 个日期。

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

int main(){
struct tm *lt;

int i=200;

//time_t t=0; // first second on epoch
time_t t=-2209010000; // first second on 1900 (works on GCC, dind't test MSVS compiler)

while(i--){
lt = localtime(&t);
printf("YYYY:MM:DD = %04d:%02d:%02d\n", lt->tm_year+1900, lt->tm_mon+1, lt->tm_mday);
lt->tm_hour+=24; // adding 24 hours
t = mktime(lt);
}
return 0;
}

顺便说一句,它有效的时间晚于 epoch 。至少在我的gcc version 4.4.3x86_64 GNU/Linux

关于C - 计算从 X 年到 Y 年的所有日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8631346/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com