为什么一周有7天

本文介绍了月相的周期变化,包括朔、望、晦的含义,以及它们在农历中的位置。同时,通过示例详细解析了Java中Calendar类的ADD、SET和ROLL方法在调整日期时的不同行为,这些方法在日历操作中至关重要。
摘要由CSDN通过智能技术生成

一个月是28天,因为月亮的阴晴圆缺的周期是28天多一点。那么好了,月亮的变化周期,一个完成的序列是从没有月亮开始的,或者是从刚刚看到月亮西半部分的小月牙(在北半球,南半球相反)开始,这一天叫做农历初一,天文学上叫新月。这一天之后大约经过7天,月亮就变成了西边一半是亮的,明暗分界线是一条直线。这个时候叫做上弦月。再过7天,就变成了圆满的月亮,也就是满月,天文学上叫望。再过七天,变成了东侧半个月亮,和上弦一样,但是方向反过来,叫做下弦月。再过7天,又变成了新月。月亮的变化是随时随刻的连续的变化,从新月到下一个新月,中间有无数个过程。但是新月、上弦、望、下弦是特别容易确定的,常人很容易看出今天的月亮是满月还是上弦月。所以用这样4个关键点作为时间分割就很方便。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

月相的朔、望、晦分别指代什么

农历每月初一是朔日,朔日当天的月亮称为朔月。朔月是新月,农历每月初一时,月亮正好位于地球和太阳之间,能被太阳光照到的地方正好位于月亮的背面,加之它和太阳一同升降,因此地球人都看不见。

农历每月十五是望日,望日当天的月亮称为望月,望月又称满月,月影呈圆形。此时月亮在空中运行到太阳的正对面,日、月相距180°,即地球位于太阳和月亮之间,从地球上看去,月亮的整个光亮面对着地球。《尔雅•释名•释天》:“望,月满之名也。月大十六日、小十五日,日在东,月在西,遥相望也。”满月阶段,黄昏时满月由东边升起,黎明时向西边沉落。

什么是五星七曜_民俗预测
  农历每月最后一天是晦日,这天的月亮称晦月。月终之日。许慎《说文》:“月尽也。”从每,许慎《说文》释每:“草盛上出也。”每与萌同声相借,萌芽欲出但未显。又每与昧字声同。

人们把每月朔月、望月这样循环的变化过程称为朔望月

Calendar c = Calendar.getInstance();
 
c.set(2014, Calendar.MARCH, 31);
c.add(Calendar.MONTH, 13);
System.out.println(c.getTime());// 2015-04-30

 
c.set(2014, Calendar.MARCH, 31);
c.set(Calendar.MONTH, c.get(Calendar.MONTH) + 13);
System.out.println(c.getTime());// 2015-05-01

 
c.set(2014, Calendar.MARCH, 31);
c.roll(Calendar.MONTH, 13);
System.out.println(c.getTime());//2014-04-30

ADD方法
以调整的单位为基点(本例中为月),较大的单位(年)会发生借位、进位。 较小的单位会往小调整。
本例中,2014-03-31,加上13个月,年份会进位为2015年。 4月31日是不存在的,所以往小调整为4月30日。
比较典型的运用场景是,日历的按月切换。
当前日期为2014-03-31,点击【下一月】按钮时,日期会变成2014-04-30.

SET方法
所有的单位都会往大调整。
本例中,2014-03-31,加上13个月,年份会进位为2015年。 4月31日是不存在的,所以往大调整为5月1日

ROLL方法
以调整的单位为基点(本例中为月),较大的单位(年)不会发生改变。 较小的单位会往小调整。
本例中,2014-03-31,加上13个月,年份依然为2014年。 4月31日是不存在的,所以往小调整为4月30日。
日会根据年、月来判断出日的取值范围,然后在1~31之间无限循环滚动,但并不会影响到年、月的值。

总结三点:
1、add() 有两条规则:
a)当被修改的字段超出它的取值范围时,那么比它大的字段会自动修正。
b)如果比它小的字段是不可变的/不在取值范围内(由 Calendar 的实现类决定),那么该小字段会修正到变化最小的值。
2、Roll() 的规则只有第二条
当被修改的字段超出它的取值范围时,那么比它大的字段不会被修正。比它小的字段会修正到变化最小的值。
3、Set()
比被修改的字段大的字段会根据字段是增大还是减小自动改变大小,比被修改字段小的字段如果是不可变的/不在取值范围内,会自动增大到变化最小的值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值