输入日期,判断时节还有多久

本文介绍了一个用于查询二十四节气的JavaScript算法,该算法通过计算日期与基准年份的差异来确定当前日期所对应的节气,并能准确指出今天、明天或后天的节气名称。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

function SolarTerm(DateGL) {
    var SolarTermStr = new Array(
        "小寒", "大寒", "立春", "雨水", "惊蛰", "春分",
        "清明", "谷雨", "立夏", "小满", "芒种", "夏至",
        "小暑", "大暑", "立秋", "处暑", "白露", "秋分",
        "寒露", "霜降", "立冬", "小雪", "大雪", "冬至");
    var DifferenceInMonth = new Array(
        1272060, 1275495, 1281180, 1289445, 1299225, 1310355,
        1321560, 1333035, 1342770, 1350855, 1356420, 1359045,
        1358580, 1355055, 1348695, 1340040, 1329630, 1318455,
        1306935, 1297380, 1286865, 1277730, 1274550, 1271556);
    var DifferenceInYear = 31556926;
    var BeginTime = new Date(1901 / 1 / 1);
    BeginTime.setTime(947120460000);
    for (; DateGL.getFullYear() < BeginTime.getFullYear();) {
        BeginTime.setTime(BeginTime.getTime() - DifferenceInYear * 1000);
    }
    for (; DateGL.getFullYear() > BeginTime.getFullYear();) {
        BeginTime.setTime(BeginTime.getTime() + DifferenceInYear * 1000);
    }
    for (var M = 0; DateGL.getMonth() > BeginTime.getMonth(); M++) {
        BeginTime.setTime(BeginTime.getTime() + DifferenceInMonth[M] * 1000);
    }
    if (DateGL.getDate() > BeginTime.getDate()) {
        BeginTime.setTime(BeginTime.getTime() + DifferenceInMonth[M] * 1000);
        M++;
    }
    if (DateGL.getDate() > BeginTime.getDate()) {
        BeginTime.setTime(BeginTime.getTime() + DifferenceInMonth[M] * 1000);
        M == 23 ? M = 0 : M++;
    }
    if (DateGL.getDate() == BeginTime.getDate()) {
        JQ = "今天" + SolarTermStr[M];
    }
    else if (DateGL.getDate() == BeginTime.getDate() - 1) {
        JQ = "明天" + SolarTermStr[M];
    }
    else if (DateGL.getDate() == BeginTime.getDate() - 2) {
        JQ = "后天" + SolarTermStr[M];
    }
    else {
        if (DateGL.getMonth() == BeginTime.getMonth()) {
            JQ = "本月";
        }
        else {
            JQ = "下月";
        }
        JQ += BeginTime.getDate() + "日" + SolarTermStr[M];
    }
    return JQ;
}
let date = new Date("Fri Mar 19 2019");
console.log(SolarTerm(date));
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值