62,615
社区成员
发帖
与我相关
我的任务
分享
import java.text.MessageFormat;
import java.util.Calendar;
public class Quarter {
public static void main(String[] args) {
QuarterBean[] quarters = getRecentQuarters(5);
for(int i = 0; i < quarters.length; i++) {
System.out.println(quarters[i].toString());
}
}
/**
* 获得最近的季度
* @param count 需要获得季度的数量
* @return
*/
public static QuarterBean[] getRecentQuarters(int count) {
if(count < 1) {
throw new IllegalArgumentException("count must be great than 0");
}
QuarterBean[] quarters = new QuarterBean[count];
quarters[0] = getCurrentQuarter();
for(int i = 1; i < quarters.length; i++) {
quarters[i] = quarters[i - 1].getPastQuarter();
}
return quarters;
}
/**
* 获得当前季度
* @return
*/
public static QuarterBean getCurrentQuarter() {
Calendar calendar = Calendar.getInstance();
int year = calendar.get(Calendar.YEAR);
int month = calendar.get(Calendar.MONTH) + 1;
return new QuarterBean(year, getQuarter(month));
}
/**
* 通过月份计算季度
* @param month
* @return
*/
public static int getQuarter(int month) {
if(month < 1 || month > 12) {
throw new IllegalArgumentException("month is invalid.");
}
return (month - 1) / 3 + 1;
}
}
class QuarterBean {
public final static int QUARTERS_EVERY_YEAR = 4;
private final static String[] QUARTERS = {
"Q1 {0}(Jan - Mar)",
"Q2 {0}(Apr - Jun)",
"Q3 {0}(Jul - Sep)",
"Q4 {0}(Oct - Dec)"
};
private int year;
private int quarter;
public QuarterBean(int year, int quarter) {
if(quarter < 1 || quarter > QUARTERS_EVERY_YEAR) {
throw new IllegalArgumentException("quarter is invalid.");
}
this.year = year;
this.quarter = quarter;
}
private QuarterBean() {
}
public int getYear() {
return year;
}
public int getQuarter() {
return quarter;
}
/**
* 获得上一季度
* @return
*/
public QuarterBean getPastQuarter() {
QuarterBean bean = new QuarterBean();
int y = (QUARTERS_EVERY_YEAR + 1 - quarter) / QUARTERS_EVERY_YEAR;
bean.year = year - y;
bean.quarter = y * QUARTERS_EVERY_YEAR + (quarter - 1);
return bean;
}
public String toString() {
return MessageFormat.format(QUARTERS[quarter - 1], String.valueOf(year));
}
}
/**
* 根据日期获取季度
* @param cal
* @return
*/
private static int getSeason(Calendar cal){
int month=cal.get(Calendar.MONTH);
return (month+1+3)/3;
}
/**
* 获取从当前季度的前四个季度
* @param cal
* @param season
* @return
*/
private static void getLastFourSeason(int CurrentSeason,Calendar cal){
if(CurrentSeason==4){
for (int i = 1; i <=4; i++) {
System.out.println(cal.get(Calendar.YEAR)+"年的第"+i+"季度");
}
}else{
//先找到今年已过的所有季度
for (int i = 1; i <= CurrentSeason; i++) {
System.out.println(cal.get(Calendar.YEAR)+"年的第"+i+"季度");
}
//补全去年的季度
for (int i = 1; i<=4-CurrentSeason; i++) {
System.out.println((cal.get(Calendar.YEAR)-1)+"年的第"+(4-i+1)+"季度");
}
}
}
/**
* 根据日期获取季度
* @param cal
* @return
*/
private static int getSeason(Calendar cal){
int month=cal.get(Calendar.MONTH);
return (month+1+3)/3;
}
Calendar calendar=Calendar.getInstance();
calendar.set(Calendar.MONTH, Calendar.NOVEMBER);
int month=calendar.get(Calendar.MONTH);
int season=(month+1+4)/4;
System.out.println("当前是"+season+"季度");
public class Test {
public static void main(String[] args)
{
int Year=getYear("2009-7-13");
int month=getMonth("2009-7-13");
String result=getThisSeasonTime(month)+" "+Year+getMonthToMonth(month);
System.out.println(result);
}
//获取季度
public static String getThisSeasonTime(int month){
String quarter="";
if(month>=1&&month<=3){
quarter="Spring";
}
if(month>=4&&month<=6){
quarter="Summer";
}
if(month>=7&&month<=9){
quarter = "Autumn";
}
if(month>=10&&month<=12){
quarter = "Winter";
}
return quarter;
}
//获取几月到几月
public static String getMonthToMonth(int month){
String monthToMonth="";
String[] months={"(January-March)","(April-June)","(July-September)","(October-December)"};
int index=month/4;
monthToMonth=months[index];
return monthToMonth;
}
//取得当前时间
public static Date getDateTime(String dateTime){
Date strDate=java.sql.Date.valueOf(dateTime);
return strDate;
}
public static int getMonth(String dateTime)
{
Calendar c=Calendar.getInstance();
c.setTime(getDateTime(dateTime));
int month=c.get(c.MONTH)+1;
return month;
}
public static int getYear(String dateTime)
{
Calendar c=Calendar.getInstance();
c.setTime(getDateTime(dateTime));
int year=c.get(c.YEAR);
return year;
}
}