寡年是否适合结婚?寡妇年结婚有什么禁忌吗?让程序来告诉你有多少人是寡妇年结婚的。

什么是寡年?

百度百科

原文:寡年-百度百科

指整年没有“立春”的日子就是“盲年”,俗称寡年。又名滑头年

社会上流传的“寡妇年”,是指整个农历年都没有立春的年份。以农历2005年的鸡年为例,立春在公历2月4日,春节要到公历2月9日,而2006年的春节则在立春之前,则2005年农历全年(即上一个春节——公历2005年2月9日到下一个春节——公历2006年1月28日之间)不存在立春日,2005年就被称为“寡妇年”。“寡妇年”只是农历与阳历的巧合,有无立春只是不同历法的时间差造成的。

有何禁忌?

"寡年不宜嫁娶"只是历史上迷信说法,没有科学道理,大家可以一笑置之。

这篇文章就来证明为什么寡年可以结婚?

立春是什么时候?

每年的阳历2月3~5号,通常是2月4号。
在这里插入图片描述

计算寡年

添加pom依赖

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>5.8.18</version> 
</dependency>

java实现

由于立春是阳历2月3~5号,为了计算方便,取2月4号作为立春,这会存在极小的误差,若要降低误差,可改代码。

import cn.hutool.core.date.ChineseDate;
import lombok.Data;
import org.apache.commons.collections.CollectionUtils;

import java.util.*;
import java.util.stream.Collectors;

/**
 * Description : 检查寡年
 * Version : 0.1
 * Date: 2023-12-15 09:49
 */
public class CheckGuaYear {

    public static void main(String[] args) {
        List<YearEntity> allYears = checkYearsLunar(1900, 2050);
        List<YearEntity> guaYears = filterGuaYears(allYears);
        guaYears.forEach(year -> System.out.println("寡年 " + year.getYear() + " 的农历日期是 " + year.getLunarYear() + " 年 "
                + year.getLunarMonth() + " " + year.getLunarDay() + " 日"));
    }

    /**
     * 计算农历年月日
     *
     * @param startYear 起始年份
     * @param endYear   终止年份
     * @return list
     */
    public static List<YearEntity> checkYearsLunar(int startYear, int endYear) {
        if (startYear < 0 || endYear < 0 || startYear > endYear) {
            return null;
        }
        List<YearEntity> yearList = new ArrayList<>();
        for (int i = startYear; i <= endYear; i++) {
            // 使用Hutool进行阳历到农历的转换,年、月(注意月份是从0开始计数)、日
            ChineseDate chineseDate = new ChineseDate(new Date(i - 1900, 1, 4));
            int lunarYear = chineseDate.getChineseYear();
            String lunarMonth = chineseDate.getChineseMonth();
            String lunarDay = chineseDate.getChineseDay();
            YearEntity guaYear = new YearEntity();
            guaYear.setYear(i);
            guaYear.setLunarYear(lunarYear);
            guaYear.setLunarMonth(lunarMonth);
            guaYear.setLunarDay(lunarDay);
            yearList.add(guaYear);
        }
        return yearList;
    }

    /**
     * 过滤寡年
     *
     * @param years 所有年份
     * @return 所有寡年
     */
    public static List<YearEntity> filterGuaYears(List<YearEntity> years) {
        if (CollectionUtils.isEmpty(years)) {
            return new ArrayList<>();
        }
        //汇总所有的有立春的农历年份
        Set<Integer> lunarYearSet = years.stream()
//                .filter(year->{
//                    Objects.requireNonNull(year, "year is null");
//                    String lunarMonth = Objects.requireNonNull(year.getLunarMonth(), "lunarMonth is null");
//                    String lunarDay = Objects.requireNonNull(year.getLunarDay(), "lunarDay is null");
//                    //如果需要精确计算,需要考虑十二月三十和正月初一,因为有些年份的立春是阳历2月3~5号
//                    return !Objects.equals("十二月", lunarMonth) || !Objects.equals("三十", lunarDay);
//                })
                .map(YearEntity::getLunarYear)
                .collect(Collectors.toSet());

        return years.stream()
                .filter(item -> {
                    int year = item.getYear();
                    //如果这一年里没有农历对应的立春,则为寡年
                    boolean isGuaYear = lunarYearSet.contains(year);
                    item.setGuaYear(isGuaYear);
                    return !isGuaYear;
                }).collect(Collectors.toList());
    }


}

/**
 * 年份实体类
 */
@Data
class YearEntity {
    /**
     * 阳历年份
     */
    private int year;
    /**
     * 农历年份
     */
    private int lunarYear;
    /**
     * 农历月份
     */
    private String lunarMonth;
    /**
     * 农历日
     */
    private String lunarDay;
    /**
     * 是否寡年:true-是
     */
    private boolean isGuaYear;
}

寡年年份

寡年 1902 的农历日期是 1901 年 十二月 廿七 日
寡年 1904 的农历日期是 1903 年 十二月 二十 日
寡年 1907 的农历日期是 1906 年 十二月 廿三 日
寡年 1910 的农历日期是 1909 年 十二月 廿六 日
寡年 1913 的农历日期是 1912 年 十二月 三十 日
寡年 1915 的农历日期是 1914 年 十二月 廿二 日
寡年 1918 的农历日期是 1917 年 十二月 廿四 日
寡年 1921 的农历日期是 1920 年 十二月 廿八 日
寡年 1923 的农历日期是 1922 年 十二月 二十 日
寡年 1926 的农历日期是 1925 年 十二月 廿三 日
寡年 1929 的农历日期是 1928 年 十二月 廿六 日
寡年 1932 的农历日期是 1931 年 十二月 廿九 日
寡年 1934 的农历日期是 1933 年 十二月 廿二 日
寡年 1937 的农历日期是 1936 年 十二月 廿四 日
寡年 1940 的农历日期是 1939 年 十二月 廿八 日
寡年 1942 的农历日期是 1941 年 十二月 二十 日
寡年 1945 的农历日期是 1944 年 十二月 廿三 日
寡年 1948 的农历日期是 1947 年 十二月 廿六 日
寡年 1951 的农历日期是 1950 年 十二月 廿九 日
寡年 1953 的农历日期是 1952 年 十二月 廿二 日
寡年 1956 的农历日期是 1955 年 十二月 廿四 日
寡年 1959 的农历日期是 1958 年 十二月 廿八 日
寡年 1961 的农历日期是 1960 年 十二月 二十 日
寡年 1964 的农历日期是 1963 年 十二月 廿二 日
寡年 1967 的农历日期是 1966 年 十二月 廿六 日
寡年 1970 的农历日期是 1969 年 十二月 廿八 日
寡年 1972 的农历日期是 1971 年 十二月 二十 日
寡年 1975 的农历日期是 1974 年 十二月 廿四 日
寡年 1978 的农历日期是 1977 年 十二月 廿七 日
寡年 1981 的农历日期是 1980 年 十二月 三十 日
寡年 1983 的农历日期是 1982 年 十二月 廿二 日
寡年 1986 的农历日期是 1985 年 十二月 廿六 日
寡年 1989 的农历日期是 1988 年 十二月 廿八 日
寡年 1991 的农历日期是 1990 年 十二月 二十 日
寡年 1994 的农历日期是 1993 年 十二月 廿四 日
寡年 1997 的农历日期是 1996 年 十二月 廿七 日
寡年 2000 的农历日期是 1999 年 十二月 廿九 日
寡年 2002 的农历日期是 2001 年 十二月 廿三 日
寡年 2005 的农历日期是 2004 年 十二月 廿六 日
寡年 2008 的农历日期是 2007 年 十二月 廿八 日
寡年 2010 的农历日期是 2009 年 十二月 廿一 日
寡年 2013 的农历日期是 2012 年 十二月 廿四 日
寡年 2016 的农历日期是 2015 年 十二月 廿六 日
寡年 2019 的农历日期是 2018 年 十二月 三十 日
寡年 2021 的农历日期是 2020 年 十二月 廿三 日
寡年 2024 的农历日期是 2023 年 十二月 廿五 日
寡年 2027 的农历日期是 2026 年 十二月 廿八 日
寡年 2029 的农历日期是 2028 年 十二月 廿一 日
寡年 2032 的农历日期是 2031 年 十二月 廿三 日
寡年 2035 的农历日期是 2034 年 十二月 廿七 日
寡年 2037 的农历日期是 2036 年 十二月 二十 日
寡年 2040 的农历日期是 2039 年 十二月 廿二 日
寡年 2043 的农历日期是 2042 年 十二月 廿五 日
寡年 2046 的农历日期是 2045 年 十二月 廿九 日
寡年 2048 的农历日期是 2047 年 十二月 廿一 日

可以看出,从1900年到2050年的寡年分别有:
[1902, 1904, 1907, 1910, 1913, 1915, 1918, 1921, 1923, 1926, 1929, 1932, 1934, 1937, 1940, 1942, 1945, 1948, 1951, 1953, 1956, 1959, 1961, 1964, 1967, 1970, 1972, 1975, 1978, 1981, 1983, 1986, 1989, 1991, 1994, 1997, 2000, 2002, 2005, 2008, 2010, 2013, 2016, 2019, 2021, 2024, 2027, 2029, 2032, 2035, 2037, 2040, 2043, 2046, 2048]

可以看出,100年内寡年还是比较多的,也就是身边近40%的人可能是寡年出生或者结婚的。

对比2024年的日历,发现计算结果正确:
在这里插入图片描述

哪些名人在寡年结婚/出生?

处于某些名字的避讳,这里就不列举某些人名了,其中包含一些大人物的名字,感兴趣可以自己去查。

再看看中国历年的结婚人数,可以发现历史上中国人什么时候结婚跟是否寡年并没有什么关系:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/319707.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

8年老鸟,自动化测试经验,测试数据管理分析总结,一篇打通...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 问题&#xff1a;…

Linux 转换文字编码与换行符 nkf命令

参考资料 【 nkf 】コマンド――文字コードと改行コードを変換するnkfコマンドでファイルの文字コードと改行コードを統一する 目录 一. 前期准备二. 乱码现象与分析三. nkf命令3.1 nkf --guess 查看文件编码3.2 nkf -w8 UTF-8(BOM)编码显示3.3 nkf -wd --overwrite 覆盖源文件…

关于CodeReview的一些实践和思考

在日常开发中&#xff0c;Code Review 的重要性日益凸显。它不仅有助于提升代码质量&#xff0c;还促进了团队成员之间的知识共享和技能提升。本文将主要聚焦于 Code Review&#xff0c;分享在这个过程中的一些心得和思考。 CodeReview常用到的一些术语 之前看到公司的大佬经…

项目进度管理

7过程 计划过程组6项&#xff1a;规划进度管理&#xff0c;定义活动&#xff0c;排列活动顺序&#xff0c;估算活动资源&#xff0c;估算活动持续时间&#xff0c;制定进度计划&#xff0c; 监控过程组1项&#xff1a;控制进度 1、规划进度管理&#xff0c; 对项目过程中管理…

Webpack模块打包工具

目录 Webpack模块打包工具知识点自测01.Webpack 简介以及体验目标讲解小结 02.Webpack 修改入口和出口目标讲解小结 03.案例-用户登录-长度判断目标讲解小结 04.Webpack 自动生成 html 文件目标讲解小结 05.Webpack-打包 css 代码目标讲解小结 06.优化-提取 css 代码目标讲解小…

C++学习笔记——继承和动态内存分配

目录 一、继承 二、动态内存分配 三、继承的细节 四、动态内存分配细节 五、一个动物园管理系统 继承和动态内存分配是C中两个重要的概念 一、继承 继承是C中面向对象编程的一个重要特性&#xff0c;它允许我们创建一个新类&#xff0c;该类从现有的类中继承属性和方法&…

设置ubuntu命令行样式

目录 一、脚本 二、含义 三、颜色设置 四、展示 五、注意 上次为了学习ros安装了一个22.04并且做了简单的配置&#xff0c;这次我们进一步对命令行样式进行配置 ubuntu22.04安装与配置_ubuntu22.04硬件配置-CSDN博客 一、脚本 这是他的默认配置&#xff0c;太长了&#x…

Python--循环语句

在 Python 中&#xff0c;循环语句用于重复执行一段代码多次。Python 主要提供了两种类型的循环&#xff1a;for 循环和 while 循环。 1. for 循环 for 循环用于遍历可迭代对象&#xff08;如列表、元组、字典、字符串等&#xff09;中的每个元素&#xff0c;并对每个元素执行…

【每日一题】构造限制重复的字符串

文章目录 Tag题目来源解题思路方法一&#xff1a;贪心空间复杂度&#xff1a; O ( ∑ ) O(\sum) O(∑)。 写在最后 Tag 【贪心】【字符串】【2024-01-13】 题目来源 2182. 构造限制重复的字符串 解题思路 方法一&#xff1a;贪心 思路 解题思想比较简单&#xff0c;利用贪…

C++进阶--红黑树

红黑树 一、红黑树的概念二、红黑树的性质三、红黑树结点的定义四、红黑树的插入五、红黑树的验证七、红黑树的查找七、红黑树与AVL树的比较七、完整代码RBTree.h 一、红黑树的概念 红黑树&#xff0c;是一种二叉搜索树&#xff0c;但在每个结点上增加一个存储位表示结点的颜色…

IaC基础设施即代码:使用Terraform 连接 alicloud阿里云

目录 一、实验 1.环境 2.alicloud阿里云创建用户 3.Linux使用Terraform 连接 alicloud 4.Windows使用Terraform 连接 alicloud 二、问题 1.Windows如何申明RAM 相关变量 2.Linux如何申明RAM 相关变量 3. Linux terraform 初始化失败 4.Linux terraform 计划与预览失败…

关于高通Android 平台上qssi的介绍

1. QSSI 是 Qualcomm Single System Image 的缩写。 2. Android Q上开始支持QSSI。 3. QSSI 是用来编译system.img的 3.1 QSSI编译注意事项 lunch qssi ------ 编译system.img lunch target ------ 编译其余的image 3.2 有QSSI和没有QSSI的编译流程对比 没有QS…

YOLOv5独家原创改进:多层次特征融合(SDI)结合PConv、DualConv、GSConv,实现二次创新 | UNet v2最新论文

💡💡💡本文独家改进:多层次特征融合(SDI)高效结合DualConv、PConv、GSConv等实现二次创新 1)替代原始的Concat; 收录 YOLOv5原创自研 https://blog.csdn.net/m0_63774211/category_12511931.html 💡💡💡全网独家首发创新(原创),适合paper !!! 💡�…

Docker运行RabbitMQ并使用SpringAMQP操作

文章目录 一、RabbitMQ运行二、整合SpringAMQP1. 引入依赖 三、测试1. 消费者2. 生产者3. 运行 一、RabbitMQ运行 拉取docker镜像 docker pull rabbitmq:3-management基础运行命令 docker run \-e RABBITMQ_DEFAULT_USERrabbitmq \-e RABBITMQ_DEFAULT_PASSrabbitmq \--name…

Vue3 如何使用移动端调试工具vConsole

1、安装 pnpm i vconsole2、在src/utils下新建vconsole.ts&#xff0c;写入以下代码 // 这是移动端控制台调试工具&#xff0c;需要调试就打开,不用就注释 import vConsole from vconsole const vconsole new vConsole()3、src/main.ts 引入&#xff0c;需要调试就打开,&…

数据结构学习之链式栈应用的案例(最小栈)

实例要求&#xff1a; 设计一个支持入栈、出栈、取栈顶元素等操作&#xff0c;并能在常数时间内检索到最小元素的栈&#xff1b; 实现 MinStack 类: MinStack* minStackCreate() 初始化堆栈对象&#xff0c;即建栈&#xff1b; void minStackPush(MinStack* obj, int val) …

DICE模型的原理与推导、碳循环与气候变化、政策评估、不确定性分析与代码分析

目录 专题一&#xff1a;DICE模型的原理与推导 专题二&#xff1a;碳循环与气候变化 专题三&#xff1a;政策评估 专题四&#xff1a;不确定性分析与代码分析 更多应用 随着温室气体排放量的增大和温室效应的增强&#xff0c;全球气候变化问题受到日益的关注。我国政府庄严…

Linux驱动学习—IIC总线之FT5X06触摸驱动实验

1、实现触摸坐标值上报 流程图&#xff1a; 设备树如下&#xff1a; 触摸设备对应的设备树节点是&#xff1a; 读取坐标的寄存器&#xff1a; #include <linux/init.h> #include <linux/module.h> #include <linux/i2c.h> #include <linux/gpio.h> #i…

【排序篇3】快速排序、归并排序

目录 一、快速排序1.1 递归1.2 非递归 二、归并排序2.1 递归2.2 非递归 一、快速排序 1.1 递归 快速排序的递归采用二叉树的前序遍历的思路&#xff0c;单趟排序先确定好一个元素的位置&#xff0c;然后往后递归再确定其他子区域内的某个元素的位置&#xff0c;直到只有一个元…

隧道应用4-内网穿透EW的简单使用

与netsh端口映射内网类似&#xff0c;也是通过跳板机实现 EW官网地址&#xff1a;http://rootkiter.com/EarthWorm EW 是一套便携式的网络穿透工具&#xff0c;具有 SOCKS v5服务架设和端口转发两大核心功能&#xff0c;可在复杂网络环境下完成网络穿透。 注&#xff1a; 考虑…