当前位置: 首页 > 知识库问答 >
问题:

一年中的天数超过VBA

羊慈
2023-03-14

我正在尝试根据日期计算专用年份的天数,例如使用excel vba的2015年。2015年应该有365天,这是非闰年,2016年是366天,这是闰年。

日期是2015年2月1日,基于2015年,我想知道2015年是多少天。有没有办法在vba中做到这一点?

共有3个答案

越飞鸾
2023-03-14

Excel 2013引入了DAYS函数。

=DAYS(DATE(2017, 12, 31), DATE(2017, 1, 1))+1

网络日。同时引入了国际功能。将其设置为包括所有日期。

=NETWORKDAYS.INTL(DATE(2017, 1, 1), DATE(2017, 12, 31), "0000000")
强化
2023-03-14

这适用于大多数目的,例如1901-2099:

=IF(MOD(YEAR(A1),4),365,366)

正如@tigeravatar所指出的,要获得更严格的逻辑,请尝试以下方法:

=IF(MOD(YEAR(A1),4),365,IF(MOD(YEAR(A1),100),366,IF(MOD(YEAR(A1),400),365,366)))

来源:维基百科的便捷算法:

  1. 如果(年份不能被4整除),那么(它是一个普通年份)
  2. 否则,如果(年份不可被100整除),那么(它是一个闰年)
  3. 否则,如果(年份不能被400整除),那么(这是一个普通年份)
  4. 否则(这是一个闰年)
鲜于子琪
2023-03-14

或者

Public Function daysinyear(lngyear As Long) As Long
    daysinyear = DateDiff("d", DateSerial(lngyear, 1, 1), DateSerial(lngyear + 1, 1, 1))
End Function
 类似资料:
  • 问题内容: 我需要在给定年份(例如2011年)的每一天的每一小时,在命令行上获取/打印,但我一直在用Java编写代码。 有人编码过这个问题吗? 问题答案: 这应该工作: 注意,例如,输出中的这个细微之处:

  • 问题内容: 如何使用javascript从1-366计算一年中的某一天?例如: 1月3日 应该是 3 月3 日 。 2月1日 应该是 32 。 问题答案: 在OP的编辑之后: 编辑:上面的代码会失败时,是3月26日和10月29日之间的日期的时间是凌晨1点之前(如零时59分59秒)。这是因为该代码未考虑夏令时。

  • 有人能想出一种方法来计算希伯来历法的一年中的一天和一年中的一周吗?我使用的是ISO 8601,它可以返回希伯来语的年,月,月中的一天和一周中的一天。我试图写可重用的代码计算器任何托拉部分(Parsha)。

  • 本文向大家介绍MySQL中查询某一天, 某一月, 某一年的数据代码详解,包括了MySQL中查询某一天, 某一月, 某一年的数据代码详解的使用技巧和注意事项,需要的朋友参考一下 今天 昨天(包括昨天和今天的数据) 昨天(只包括昨天) 近7天 近30天 本月 上一月 查询本季度数据 查询上季度数据 查询本年数据 查询上年数据 查询当前这周的数据 查询上周的数据 查询上个月的数据 查询当前月份的数据 查

  • NowCoder 解题思路 多数投票问题,可以利用 Boyer-Moore Majority Vote Algorithm 来解决这个问题,使得时间复杂度为 O(N)。 使用 cnt 来统计一个元素出现的次数,当遍历到的元素和统计元素相等时,令 cnt++,否则令 cnt--。如果前面查找了 i 个元素,且 cnt == 0,说明前 i 个元素没有 majority,或者有 majority,但是

  • 我已经根据日期yyyy-mm-dd对配置单元表进行了分区。我想每天运行一个脚本,可以删除所有超过30天的分区,但在这种情况下,我不想超过日期。我希望它采取系统日期和删除超过30天的分区。