1
0
mirror of synced 2026-02-13 00:18:00 +08:00

Initial commit

This commit is contained in:
6tail
2018-06-23 16:41:40 +08:00
commit 6db19410ea
21 changed files with 2151 additions and 0 deletions

View File

@@ -0,0 +1,110 @@
package com.nlf.calendar;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import com.nlf.calendar.util.SolarUtil;
/**
* 阳历月
*
* @author 6tail
*
*/
public class SolarMonth{
/** 年 */
private int year;
/** 月 */
private int month;
/**
* 默认当月
*/
public SolarMonth(){
this(new Date());
}
/**
* 通过日期初始化
*/
public SolarMonth(Date date){
Calendar c = Calendar.getInstance();
c.setTime(date);
year = c.get(Calendar.YEAR);
month = c.get(Calendar.MONTH)+1;
}
/**
* 通过日历初始化
*/
public SolarMonth(Calendar calendar){
year = calendar.get(Calendar.YEAR);
month = calendar.get(Calendar.MONTH)+1;
}
/**
* 通过年月初始化
*
* @param year 年
* @param month 月
*/
public SolarMonth(int year,int month){
this.year = year;
this.month = month;
}
/**
* 获取年
*
* @return 年
*/
public int getYear(){
return year;
}
/**
* 获取月
*
* @return 月
*/
public int getMonth(){
return month;
}
/**
* 获取本月的阳历日期列表
*
* @return 阳历日期列表
*/
public List<Solar> getDays(){
List<Solar> l = new ArrayList<Solar>(31);
Solar d = new Solar(year,month,1);
l.add(d);
int days = SolarUtil.getDaysOfMonth(year,month);
for(int i = 1;i<days;i++){
l.add(d.next(i));
}
return l;
}
/**
* 获取往后推几个月的阳历月,如果要往前推,则月数用负数
* @param months 月数
* @return 阳历月
*/
public SolarMonth next(int months){
Calendar c = Calendar.getInstance();
c.set(year,month-1,1);
c.add(Calendar.MONTH,months);
return new SolarMonth(c);
}
public String toString(){
return year+"-"+month;
}
public String toFullString(){
return year+""+month+"";
}
}