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

本文介绍了一个用于查询二十四节气的JavaScript算法,该算法通过计算日期与基准年份的差异来确定当前日期所对应的节气,并能准确指出今天、明天或后天的节气名称。
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));
<think> 嗯,用户正在询问部署WeBASE时节点被占用问题的解决方案。从用户描述看,ta在部署过程中遇到了端口冲突或进程残留导致节点无法启动的问题。 用户引用了5个WeBASE相关文档片段,其中引用3提到节点进程的查看方式,引用4涉及环境检查步骤,这些都是解决问题的关键线索。用户能准确描述"节点被占用"这一现象,说明ta对区块链部署有一定基础认知,可能是个开发者或运维人员。 需要重点解决三个层面问题: 1. 诊断层面:如何确认端口冲突/进程残留(参考引用3的ps命令) 2. 解决方案:提供终止进程/修改端口两种路径(引用4的端口配置提示很有用) 3. 预防措施:环境预检建议(引用4的检查清单可扩展) 特别要注意的是,区块链节点对端口一致性要求严格,所以修改端口后必须同步调整相关配置文件,这点在方案二中需要强调。用户可能更倾向快速解决方案,因此把进程终止方案放在首位。 考虑到生产环境安全性,需要提醒用户: - 终止进程前确认是否属于残留进程(避免误杀) - 修改端口时保持各组件配置一致性 - 网络策略同步调整(引用4的安全组提示) 用户没提供具体错误日志,所以补充了常见报错示例(Address already in use),方便ta对照排查。最后给出的自测命令都来自引用片段,确保可靠性。 </think> 以下针对部署WeBASE时节点端口被占用问题的解决方案整理(综合引用内容[3][4]): ### 诊断与解决步骤: #### 1. **确认占用进程**(关键步骤) ```bash # 查看占用节点端口的进程(默认节点端口:30300, 20200, 5002) lsof -i :30300 # 检查节点P2P端口 lsof -i :20200 # 检查节点RPC端口 lsof -i :5002 # 检查节点前置端口 ``` 若输出类似引用[3]的进程信息(如`fisco-bcos`进程),说明节点已在运行[^3]。 #### 2. **终止占用进程** ```bash # 根据PID结束进程(示例PID为29977) kill -9 29977 29979 # 结束多个节点进程 ``` > ⚠️ 生产环境需谨慎操作,避免误杀非目标进程 #### 3. **修改端口配置**(备选方案) 若需保留原进程,可修改节点配置: 1. 编辑节点配置文件 `config.ini`(路径参考引用[3]) ```ini [rpc] channel_listen_port=20201 # 修改RPC端口 [p2p] listen_port=30301 # 修改P2P端口 ``` 2. 同步修改 **节点前置(webase-front)** 配置 ```yml # 在webase-front的application.yml中 server: port: 5003 # 修改前置端口 constant: nodePort: 20201 # 对应节点新RPC端口 ``` #### 4. **检查关联服务** - **MySQL端口冲突**(引用[4]) 检查WeBASE依赖的MySQL默认端口`3306`是否被占: ```bash lsof -i :3306 # 若冲突需修改MySQL端口或释放资源 ``` - **管理平台端口**(引用[4]) 确认管理平台端口`5000`是否冲突: ```bash lsof -i :5000 ``` ### 预防措施: 1. **部署前检查**(引用[4]建议) ```bash # 检查关键端口状态 netstat -tuln | grep -E '30300|20200|5002|5000|3306' ``` 2. **服务器网络策略**(引用[4]) - 确保安全组开放端口一致性 - 避免端口复用导致冲突[^4] ### 常见报错示例: ```log ERROR - Port 20200 already in use, check fisco-bcos process. ``` > 此错误表明节点RPC端口被占用,需执行上述步骤1或2[^3]。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值