当前位置: 首页 > news >正文

计算某天是某年里的第几天

计算某天是某年里的第几天的方法

输入处理

需要用户输入年、月、日三个整型变量,分别表示待计算的日期。例如:

int year, month, day;
scanf("%d%d%d", &year, &month, &day);

闰年判断

闰年的判断规则如下:

  • 能被4整除但不能被100整除的年份是闰年。
  • 能被400整除的年份也是闰年。
int isLeapYear(int year) {return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}

每月天数存储

使用数组存储平年和闰年每个月的天数,注意2月的天数会根据闰年调整:

int daysInMonth[2][13] = {{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}, // 平年{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}  // 闰年
};

计算总天数

从1月累加到输入月份的前一个月,最后加上输入的日数:

int dayOfYear(int year, int month, int day) {int total = 0;int leap = isLeapYear(year);for (int i = 1; i < month; i++) {total += daysInMonth[leap][i];}total += day;return total;
}

完整代码示例
#include <stdio.h>int isLeapYear(int year) {return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}int dayOfYear(int year, int month, int day) {int daysInMonth[2][13] = {{0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31},{0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}};int total = 0;int leap = isLeapYear(year);for (int i = 1; i < month; i++) {total += daysInMonth[leap][i];}total += day;return total;
}int main() {int year, month, day;printf("Enter year month day: ");scanf("%d%d%d", &year, &month, &day);printf("Day of year: %d\n", dayOfYear(year, month, day));return 0;
}

注意事项
  • 输入日期的有效性需额外验证(如月份为1-12,日数不超过当月最大值)。
  • 数组下标从1开始以匹配月份编号,避免混淆。
http://www.dtcms.com/a/513279.html

相关文章:

  • 网站外链收录很多 内链收录几个苏州网站建设哪家好
  • 为什么要建设门户网站中企动力科技股份有限公司佛山分公司
  • 湖南智能网站建设平台阿里巴巴外贸网站首页
  • 零基础从头教学Linux(Day 53)
  • 网站制作公司新鸿儒运行两个wordpress
  • 北京顺义有网站建设公司吗临海建设规划局网站
  • 北京手机站建站接游戏单子代打的平台
  • 基于单片机的PID温控风扇设计
  • 鹤山做网站福州企业网站维护
  • 云南省建设注册考试中心网站wordpress 几百万数据
  • 怎样做旅游网站中国公共招聘网
  • 旅游社网站建设规划书制作logo用什么软件
  • 通过内网穿透实现远程访问 Kavita
  • 那些cps网站做的比较好mysql开发网站开发
  • 怎么为一个网站做外链百度云域名备案
  • 专门做自助游的网站python怎么搭建网站
  • 做网站的公司排名做网站的时候宽高
  • 怎么编写网站营销型网站建设思路
  • 徐州手机网站东莞seo建站推广
  • 凡科建网seo外链推广员
  • 小学生网上学做辅导哪个网站好那个网站可以做空比特币
  • 基于Q-learning算法的MATLAB房间路径规划实现
  • 【CTF | 比赛篇】强网杯wp
  • Java 的map集合体系
  • 旅游网站代码html快站优惠券去哪里找
  • 建设银行的积分网站php+mysql 网站建设
  • 网站制作费四川鸿业建设集团网站
  • 外贸假发 网站杭州网站开发培训
  • 怎么搭建局域网网站wordpress小人无法显示
  • RabbitMQ 七种工作模式全解析