Skip to content

Commit

Permalink
修复节日计算错误。
Browse files Browse the repository at this point in the history
  • Loading branch information
6tail committed Nov 19, 2020
1 parent 135d39b commit 622294e
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 7 deletions.
9 changes: 2 additions & 7 deletions src/main/java/com/nlf/calendar/Solar.java
Original file line number Diff line number Diff line change
Expand Up @@ -324,15 +324,10 @@ public List<String> getFestivals(){
l.add(f);
}
//计算几月第几个星期几对应的节日
//第几周
int weekInMonth = calendar.get(Calendar.WEEK_OF_MONTH);
int weeks = (int)Math.ceil(day/7D);
//星期几,0代表星期天
int week = getWeek();
//星期天很奇葩,会多算一周,需要减掉
if(0==week){
weekInMonth--;
}
f = SolarUtil.WEEK_FESTIVAL.get(month+"-"+weekInMonth+"-"+week);
f = SolarUtil.WEEK_FESTIVAL.get(month+"-"+weeks+"-"+week);
if(null!=f){
l.add(f);
}
Expand Down
1 change: 1 addition & 0 deletions src/main/java/com/nlf/calendar/util/SolarUtil.java
Original file line number Diff line number Diff line change
Expand Up @@ -114,6 +114,7 @@ public class SolarUtil{
put("10-13",Collections.nCopies(1,"中国少年先锋队诞辰日"));
put("10-25",Collections.nCopies(1,"抗美援朝纪念日"));
put("11-12",Collections.nCopies(1,"孙中山诞辰纪念日"));
put("11-17",Collections.nCopies(1,"国际大学生节"));
put("11-28",Collections.nCopies(1,"恩格斯诞辰纪念日"));
put("12-1",Collections.nCopies(1,"世界艾滋病日"));
put("12-12",Collections.nCopies(1,"西安事变纪念日"));
Expand Down
33 changes: 33 additions & 0 deletions src/test/java/test/FestivalTest.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package test;

import com.nlf.calendar.Solar;
import org.junit.Assert;
import org.junit.Test;

/**
* 节日测试
*
* @author 6tail
*/
public class FestivalTest {
@Test
public void test() {
Solar solar = Solar.fromYmd(2020, 11, 26);
Assert.assertEquals("[感恩节]", solar.getFestivals() + "");

solar = Solar.fromYmd(2020, 6, 21);
Assert.assertEquals("[父亲节]", solar.getFestivals() + "");

solar = Solar.fromYmd(2021, 5, 9);
Assert.assertEquals("[母亲节]", solar.getFestivals() + "");

solar = Solar.fromYmd(1986, 11, 27);
Assert.assertEquals("[感恩节]", solar.getFestivals() + "");

solar = Solar.fromYmd(1985, 6, 16);
Assert.assertEquals("[父亲节]", solar.getFestivals() + "");

solar = Solar.fromYmd(1984, 5, 13);
Assert.assertEquals("[母亲节]", solar.getFestivals() + "");
}
}

0 comments on commit 622294e

Please sign in to comment.