首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何计算农历中的闰年?

如何计算农历中的闰年?
EN

Stack Overflow用户
提问于 2020-03-25 18:43:08
回答 2查看 257关注 0票数 7

如你所知,在贾拉利历法中每四年有一次闰期(当然,也有一些例外)

而不是一年365天,而是366天:)

另一个问题是,有些月份是29天,有些月份是30天,有些月份是31:

我使用moment库来生成这些日期(当然使用fa方法)

这个名为تقویم的网站做得很好。

代码语言:javascript
复制
var moment = require('moment-jalaali')
moment().format('jYYYY/jM/jD')

现在我的问题是如何识别哪些月份是29、30和31,哪些年份是leap?

EN

回答 2

Stack Overflow用户

发布于 2020-03-25 18:54:23

在我之前的项目中,我遇到了同样的问题,您必须使用此方法来完成此操作

这个函数不是在javascript中实现的,但是这个算法非常适合您的闰年

代码语言:javascript
复制
internal static bool IsLeapYear(int y)
{
    int[] matches = { 1, 5, 9, 13, 17, 22, 26, 30 };
    int modulus = y - ((y / 33) * 33);
    bool K = false;
    for (int n = 0; n != 8; n++) if (matches[n] == modulus) K = true;
    return K;
}
票数 6
EN

Stack Overflow用户

发布于 2021-07-15 04:06:17

以下是新浪拉赫玛尼的答案的JavaScript版本(y/ 30应该向下舍入才能在JavaScript中正常工作):

代码语言:javascript
复制
function isLeapYearJalali(year) {
    const matches = [1, 5, 9, 13, 17, 22, 26, 30];
    const modulus = year - (Math.floor(year / 33) * 33);
    let isLeapYear = false;

    for (let i = 0; i != 8; i++) {
        if (matches[i] == modulus) {
            isLeapYear = true;
        }
    }

    return isLeapYear;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60847158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档