计算两个日期之间的天数c语言

不念不忘少年蓝@ 2024-04-20 22:02 148阅读 0赞

记录一下自己写的小程序

  1. #include <stdio.h>int main()
  2. {
  3. int year1, year2, month1, month2, day1,
  4. day2;
  5. printf("请输入较小的年月日;例如2020 1 6\n");
  6. scanf("%d%d%d", &year1, &month1, &day1);
  7. printf("请输入较大的年月日;例如2020 1 6\n");
  8. scanf("%d%d%d", &year2, &month2, &day2);
  9. int run[13] = {
  10. 0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  11. int ping[13] = {
  12. 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
  13. int i = 1, b = 1, zong1 = 0, zong2 = 0;
  14. for (i = 1; i < year1; i++)
  15. {
  16. if (i % 400 == 0 || (i % 100 != 0 && i % 4 == 0))
  17. {
  18. zong1 += 366;
  19. if ((i + 1) == year1)
  20. {
  21. for (b = 1; b < month1; b++)
  22. zong1 += run[b];
  23. }
  24. }
  25. else
  26. {
  27. zong1 += 365;
  28. if ((i + 1) == year1)
  29. {
  30. for (b = 1; b < month1; b++)
  31. zong1 += ping[b];
  32. }
  33. }
  34. }
  35. zong1 = zong1 + day1 - 1;
  36. for (i = 1; i < year2; i++)
  37. {
  38. if (i % 400 == 0 || (i % 100 != 0 && i % 4 == 0))
  39. {
  40. zong2 += 366;
  41. if ((i + 1) == year2)
  42. {
  43. for (b = 1; b < month2; b++)
  44. zong2 += run[b];
  45. }
  46. }
  47. else
  48. {
  49. zong2 += 365;
  50. if ((i + 1) == year2)
  51. {
  52. for (b = 1; b < month2; b++) zong2 += ping[b];
  53. }
  54. }
  55. }
  56. zong2 = zong2 + day2 - 1;
  57. printf("zong1=%d,zong2=%d\n", zong1, zong2);
  58. printf("相差天数:%d", zong2 - zong1);
  59. getchar();
  60. }

发表评论

表情:
评论列表 (有 0 条评论,148人围观)

还没有评论,来说两句吧...

相关阅读