如何计算印度历中的闰年



如您所知,Jalali日历每四年就有一次飞跃(当然也有一些例外(

它不是一年365天,而是366天:(

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

我使用时刻库生成这些日期(当然使用fa方法(

这个名为"的网站做得很好。

var moment = require('moment-jalaali')
moment().format('jYYYY/jM/jD')

现在我的问题是如何确定哪些月份是29、30和31哪一年是闰年?

在我以前的项目中,我遇到了同样的问题,你必须使用这种方法来完成

这个函数不在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;
}

以下是Sina Rahmani答案的JavaScript版本(y/30应该向下取整才能在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;
}

相同的JS代码,只是有点花哨!

function isLeapYearJalali(year) {
const matches = [1, 5, 9, 13, 17, 22, 26, 30];
const modulus = year % 33;
return matches.includes(modulus)
}

相关内容

  • 没有找到相关文章

最新更新