You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ha-datetimepicker伊朗历1403年新年首日计算错误求助

伊朗历1403年新年首日星期计算错误修复求助

我在Web应用中使用ha-datetimepicker组件时发现,伊朗历1403年的新年首日被错误计算为周四,而正确起始日应为周三。问题显然与以下代码片段相关,但我无法自行解决,恳请各位帮忙修复该问题。

感谢大家...

HaSolarDate.prototype.getWeekDay = function (solarDate) {
    if (solarDate == null)
        solarDate = this;

    var month = solarDate.getMonth() + 1;
    var year = solarDate.getFullYear();
    var day = solarDate.getDate();

    if (Number(day) == "NaN" || Number(month) == "NaN" || Number(year) == "NaN")
        return "Wrong Date!";

    var firstDayOfYear95 = 1;

    var step = year < 1395 ? 1 : -1;
    var i = year;
    var leapCount = 0;
    while (i != 1395) {
        if (this.isLeapYear(i))
            leapCount++;
        i += step;
    }
    if (year > 1395)
        leapCount++;

    var offset = (firstDayOfYear95 + (leapCount * -step)) % 7;
    var firstDayOfYear = (((year - 1395) % 7) + offset) % 7;
    if (firstDayOfYear < 0)
        firstDayOfYear = 7 + firstDayOfYear;
    if (month <= 6) {
        var dayOfWeek = ((((month - 1) * 3) - 1) + day + firstDayOfYear) % 7;
    } else {
        var dayOfWeek = ((((month - 1) * 2) - 2) + day + firstDayOfYear) % 7;
    }

    dayOfWeek = Math.floor(dayOfWeek);
    if (dayOfWeek == 7)
        dayOfWeek = 0;
    return dayOfWeek;
}

错误计算结果
正确日历示例

内容的提问来源于stack exchange,提问作者Mohsen Jabbari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 13:25:25