一个季度一年有几个季度月

一年有4个季度,每个季度有几个月.一,二,三月是第一季度,七,八,九月是什么季度,第四季度共有多, 一年有4个季度,每个季度有几个
一年有4个季度,每个季度有几个月.一,二,三月是第一季度,七,八,九月是什么季度,第四季度共有多 天。 luo 一年有4个季度,每个季度有几个月.一,二,三月是第一季度,七,八,九月是什么季度,第四季度共有多
七每个季度有三个月,九月是第三季度,八,第四季度共有我92天
七八九月是秋季四季共平年365闰366天
热心网友
%m(°A°`)%n
热心网友一个季度几个月?
这是一个太简单不过的常识了。但是,我公司一个新来不久的大学生,居然不太清楚。一天,非常认真地也非常谦虚地也非常小心地问我:“ *
师傅,一个季度有几个月啊?”我也以很认真的口吻回答:“一个季度四个月。”其实充满了调侃的意味,但发问者并没在意,很满意我的回答:“奥,我知道了。”------我想说的是,一些“天之骄子”连最基本的生活常识都不知道,社会究竟应当怎样评判他们。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。2125人阅读
import java.text.DateF
import java.text.ParseE
import java.text.SimpleDateF
import java.util.ArrayL
import java.util.C
import java.util.D
import java.util.HashM
import java.util.L
import java.util.M
public class ReportDateUtils {
* (日)计算去年同期和上期的起止时间
* beginkey、endkey
返回的map key
end本期起止日期
public static Map&String,String& getDayDate(int type,String beginkey,String endkey,String begin,String end){
Map&String,String& map = new HashMap&String, String&();
DateFormat sdf = new SimpleDateFormat(&yyyy-MM-dd&);
Date date1 = // 开始日期
Date dEnd = // 结束日期
date1 = sdf.parse(begin);
dEnd = sdf.parse(end);
Calendar calBegin = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calBegin.setTime(date1);
Calendar calEnd = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calEnd.setTime(dEnd);
if (type == 1) {// 计算上期
// 计算查询时间段相隔多少天
long beginTime = date1.getTime();
long endTime = dEnd.getTime();
long inter = endTime - beginT
if (inter & 0) {
inter = inter * (-1);
long dateMillSec = 24 * 60 * 60 * 1000;
long dateCnt =
inter / dateMillS
long remainder = inter % dateMillS
if (remainder != 0) {
dateCnt++;
int day = Integer.parseInt(String.valueOf(dateCnt))+1;
calBegin.add(Calendar.DATE, -day);// 像前推day天
calEnd.add(Calendar.DATE, -day);// 像前推day天
}else if(type==2){
calBegin.add(Calendar.YEAR, -1);// 去年同期
calEnd.add(Calendar.YEAR, -1);// 去年同期
map.put(beginkey, sdf.format(calBegin.getTime()));
map.put(endkey, sdf.format(calEnd.getTime()));
} catch (ParseException e) {
e.printStackTrace();
* (日)返回时间段内的所有的天
type 0本期
2去年同期(日)
* @param begin
* @param end
public static List&String& getDaysList(String begin,String end){
DateFormat sdf = new SimpleDateFormat(&yyyy-MM-dd&);
List&String& lDate = new ArrayList&String&();
Date date1 = // 开始日期
Date dEnd = // 结束日期
date1 = sdf.parse(begin);
dEnd = sdf.parse(end);
Calendar calBegin = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calBegin.setTime(date1);
Calendar calEnd = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calEnd.setTime(dEnd);
// 添加第一个 既开始时间
lDate.add(sdf.format(calBegin.getTime()));
while (pareTo(calEnd)&0) {
// 根据日历的规则,为给定的日历字段添加或减去指定的时间量
calBegin.add(Calendar.DAY_OF_MONTH, 1);
Date ss = calBegin.getTime();
String str = sdf.format(ss);
lDate.add(str);
} catch (ParseException e) {
e.printStackTrace();
* (周)计算(周) 上期和去年同期的起止日期和起止周
* 计算上期的起止时间 和去年同期
type 0本期
* 起始日期key
* 起始日期的起止周key
* 本期:begin
* 本期起止周 beginW、endW
public static Map&String,String& getWeekDate(int type,String beginkey,String endkey,String beginWkey,String endWkey,String begin,String end,String beginW,String endW){
Map&String,String& map = new HashMap&String, String&();
DateFormat sdf = new SimpleDateFormat(&yyyy-MM-dd&);
Date date1 = // 开始日期
Date dEnd = // 结束日期
date1 = sdf.parse(begin);
dEnd = sdf.parse(end);
Calendar calBegin = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calBegin.setTime(date1);
Calendar calEnd = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calEnd.setTime(dEnd);
calBegin.setFirstDayOfWeek(Calendar.MONDAY);
calEnd.setFirstDayOfWeek(Calendar.MONDAY);
if (type == 1) {// 计算上期
// 计算查询时间段相隔多少周
int week = getWeekCount(date1,dEnd);
//往前推week周
calBegin.add(Calendar.WEEK_OF_YEAR, -week);// 像前推week周
calEnd.add(Calendar.WEEK_OF_YEAR, -week);// 像前推week周
map.put(beginWkey, String.valueOf(calBegin.get(Calendar.WEEK_OF_YEAR)));//得到其实日期的周);
map.put(endWkey, String.valueOf(calEnd.get(Calendar.WEEK_OF_YEAR)));//得到其实日期的周);
//得到起始周的周一
和结束周的周末
int day_of_week = calBegin.get(Calendar.DAY_OF_WEEK) - 1;
if (day_of_week == 0)
day_of_week = 7;
calBegin.add(Calendar.DATE, -day_of_week + 1);
//本周周末
int day_of_week_end = calEnd.get(Calendar.DAY_OF_WEEK) - 1;
if (day_of_week_end == 0)
day_of_week_end = 7;
calEnd.add(Calendar.DATE, -day_of_week_end + 7);
}else if(type==2){
calBegin.add(Calendar.YEAR, -1);// 去年同期
calEnd.add(Calendar.YEAR, -1);// 去年同期
//去年的开始的本周
calBegin.set(Calendar.WEEK_OF_YEAR,Integer.parseInt(beginW));
calEnd.set(Calendar.WEEK_OF_YEAR,Integer.parseInt(endW));
map.put(beginWkey,beginW);
map.put(endWkey,endW);
//得到起始周的周一
和结束周的周末
int day_of_week = calBegin.get(Calendar.DAY_OF_WEEK) - 1;
if (day_of_week == 0)
day_of_week = 7;
calBegin.add(Calendar.DATE, -day_of_week + 1);
//本周周末
int day_of_week_end = calEnd.get(Calendar.DAY_OF_WEEK) - 1;
if (day_of_week_end == 0)
day_of_week_end = 7;
calEnd.add(Calendar.DATE, -day_of_week_end + 7);
map.put(beginkey, sdf.format(calBegin.getTime()));
map.put(endkey, sdf.format(calEnd.getTime()));
} catch (ParseException e) {
e.printStackTrace();
* (周)返回起止时间内的所有自然周
* @param begin
* @param end
* @param startw
* @param endW
public static List&String& getWeeksList(String begin,String end,String startw,String endW){
DateFormat sdf = new SimpleDateFormat(&yyyy&);
List&String& lDate = new ArrayList&String&();
Date date1 = // 开始日期
Date dEnd = // 结束日期
date1 = sdf.parse(begin);
dEnd = sdf.parse(end);
Calendar calBegin = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calBegin.setTime(date1);
Calendar calEnd = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calEnd.setTime(dEnd);
//开始时间是今年的第几周
calBegin.setFirstDayOfWeek(Calendar.MONDAY);
int count = calBegin.get(Calendar.WEEK_OF_YEAR);//得到其实日期的周
//添加第一个周
int beginww = Integer.parseInt(startw);
int endww = Integer.parseInt(endW);
int beginY = calBegin.get(Calendar.YEAR);
int endY = calEnd.get(Calendar.YEAR);
int weekall = getAllWeeks(beginY+&&);
//如果是同一年
lDate.add(beginY+&年第&+beginww+&周&);
if(beginww==weekall){
beginww = 0;
weekall = getAllWeeks(beginY+&&);
if(beginY==endY &&beginww==endww){
beginww++;
}while(beginY&=endY);
} catch (ParseException e) {
e.printStackTrace();
* (月)得当时间段内的所有月份
* @param StartDate
* @param endDate
public static List&String& getYearMouthBy(String StartDate,String endDate) {
DateFormat df = new SimpleDateFormat(&yyyy-MM&);
Date date1 = // 开始日期
Date date2 = // 结束日期
date1 = df.parse(StartDate);
date2 = df.parse(endDate);
} catch (ParseException e) {
e.printStackTrace();
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
//定义集合存放月份
List&String& list = new ArrayList&String&();
//添加第一个月,即开始时间
list.add(df.format(date1));
c1.setTime(date1);
c2.setTime(date2);
while (c1.compareTo(c2) & 0) {
c1.add(Calendar.MONTH, 1);// 开始日期加一个月直到等于结束日期为止
Date ss = c1.getTime();
String str = df.format(ss);
list.add(str);
* (月)计算本期的上期和去年同期
* 返回的mapkay
* 本期起止:begin
* 计算上期的起止时间 和去年同期
type 0本期
public static Map&String,String& getMonthDate(int type,String beginkey,String endkey,String begin,String end){
Map&String,String& map = new HashMap&String, String&();
DateFormat sdf = new SimpleDateFormat(&yyyy-MM&);
Date date1 = // 开始日期
Date dEnd = // 结束日期
date1 = sdf.parse(begin);
dEnd = sdf.parse(end);
Calendar calBegin = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calBegin.setTime(date1);
Calendar calEnd = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calEnd.setTime(dEnd);
if (type == 1) {// 计算上期
int year = calBegin.get(Calendar.YEAR);
int month = calBegin.get(Calendar.MONTH);
int year1 = calEnd.get(Calendar.YEAR);
int month1 = calEnd.get(Calendar.MONTH);
if(year==year1){
result=month1-//两个日期相差几个月,即月份差
result=12*(year1-year)+month1-//两个日期相差几个月,即月份差
calBegin.add(Calendar.MONTH, -result);// 像前推day天
calEnd.add(Calendar.MONTH, -result);// 像前推day天
}else if(type==2){
calBegin.add(Calendar.YEAR, -1);// 去年同期
calEnd.add(Calendar.YEAR, -1);// 去年同期
map.put(beginkey, sdf.format(calBegin.getTime()));
map.put(endkey, sdf.format(calEnd.getTime()));
} catch (ParseException e) {
e.printStackTrace();
* (年)计算本期(年)的上期
public static Map&String,String& getYearDate(String beginkey,String endkey,String begin,String end){
Map&String,String& map = new HashMap&String, String&();
DateFormat sdf = new SimpleDateFormat(&yyyy&);
Date date1 = // 开始日期
Date dEnd = // 结束日期
date1 = sdf.parse(begin);
dEnd = sdf.parse(end);
Calendar calBegin = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calBegin.setTime(date1);
Calendar calEnd = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calEnd.setTime(dEnd);
int year = calBegin.get(Calendar.YEAR);
int year1 = calEnd.get(Calendar.YEAR);
result = year1 - year + 1;// 两个日期的年份差
calBegin.add(Calendar.YEAR, -result);// 像前推N年
calEnd.add(Calendar.YEAR, -result);// 像前推N年
map.put(beginkey, sdf.format(calBegin.getTime()));
map.put(endkey, sdf.format(calEnd.getTime()));
} catch (ParseException e) {
e.printStackTrace();
* 获取年份时间段内的所有年
* @param StartDate
* @param endDate
public static List&String& getYearBy(String StartDate,String endDate) {
DateFormat df = new SimpleDateFormat(&yyyy&);
Date date1 = // 开始日期
Date date2 = // 结束日期
date1 = df.parse(StartDate);
date2 = df.parse(endDate);
} catch (ParseException e) {
e.printStackTrace();
Calendar c1 = Calendar.getInstance();
Calendar c2 = Calendar.getInstance();
//定义集合存放月份
List&String& list = new ArrayList&String&();
//添加第一个月,即开始时间
list.add(df.format(date1));
c1.setTime(date1);
c2.setTime(date2);
while (c1.compareTo(c2) & 0) {
c1.add(Calendar.YEAR, 1);// 开始日期加一个月直到等于结束日期为止
Date ss = c1.getTime();
String str = df.format(ss);
list.add(str);
* 获取两个日期段相差的周数
public static int getWeekCount(Date date1,Date dEnd){
Calendar c_begin = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
c_begin.setTime(date1);
Calendar c_end = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
c_end.setTime(dEnd);
int count = 0;
c_end.add(Calendar.DAY_OF_YEAR, 1); // 结束日期下滚一天是为了包含最后一天
c_begin.setFirstDayOfWeek(Calendar.MONDAY);
c_end.setFirstDayOfWeek(Calendar.MONDAY);
while (c_begin.before(c_end)) {
if (c_begin.get(Calendar.DAY_OF_WEEK) == Calendar.SUNDAY) {
c_begin.add(Calendar.DAY_OF_YEAR, 1);
* 返回该年有多少个自然周
* @param year
* 如果12月月末今天在本年53周(属于第二年第一周) 那么按照当年52周算
public static int getAllWeeks(String year){
Calendar calendar = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat(&yyyy-MM-dd&);
calendar.setTime(sdf.parse(year+&-12-31&));
} catch (ParseException e) {
e.printStackTrace();
calendar.setFirstDayOfWeek(Calendar.MONDAY);
int count = calendar.get(Calendar.WEEK_OF_YEAR);//得到其实日期的周
int week =
calendar.get(Calendar.WEEK_OF_YEAR);
if(week != 53){
week = 52;
* (季度) 计算本期的上期起止时间和同期的起止时间
* 返回的mao key 时间起止:beginkey
季度起止: beginWkey
* 本期的时间起止:begin end
季度:beginW
* type 0本期
public static Map&String,String& getQuarterDate(int type,String beginkey,String endkey,String beginWkey,String endWkey,String begin,String end,String beginW,String endW){
//计算本期的起始日期 和截止日期
Map&String,String& map = new HashMap&String, String&();
DateFormat sdf = new SimpleDateFormat(&yyyy&);
Date date1 = // 开始日期
Date dEnd = // 结束日期
date1 = sdf.parse(begin);
dEnd = sdf.parse(end);
Calendar calBegin = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calBegin.setTime(date1);
calBegin.set(Calendar.MONTH, setMonthByQuarter(Integer.parseInt(beginW)));
Calendar calEnd = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calEnd.setTime(dEnd);
calEnd.set(Calendar.MONTH, setMonthByQuarter(Integer.parseInt(endW)));
if (type == 1) {// 计算上期
// 计算查询时间段相隔多少季度(多少个月)
int quarter =
((Integer.parseInt(end)-Integer.parseInt(begin))*4+(Integer.parseInt(endW) - Integer.parseInt(beginW))+1)*3;
//往前推week周
calBegin.add(Calendar.MONTH, -quarter);// 像前推week月份
calEnd.add(Calendar.MONTH, -quarter);// 像前推week月份
map.put(beginWkey,String.valueOf(getQuarterByMonth(calBegin.get(Calendar.MONTH))));//得到其实日期的月);
map.put(endWkey,String.valueOf(getQuarterByMonth(calEnd.get(Calendar.MONTH))));//得到其实日期的月);
}else if(type==2){
calBegin.add(Calendar.YEAR, -1);// 去年同期
calEnd.add(Calendar.YEAR, -1);// 去年同期
map.put(beginWkey,beginW);
map.put(endWkey,endW);
map.put(beginkey,String.valueOf(calBegin.get((Calendar.YEAR)))+&-&+setMonthByQuarterToString(0,Integer.parseInt(map.get(beginWkey))));
map.put(endkey, String.valueOf(calEnd.get((Calendar.YEAR))+&-&+setMonthByQuarterToString(1,Integer.parseInt(map.get(endWkey)))));
} catch (ParseException e) {
e.printStackTrace();
* (季度)获取季度份时间段内的所有季度
* @param StartDate
* @param endDate
public static List&String& getQuarterBy(String StartDate,String beginQ,String endDate,String endQ) {
DateFormat sdf = new SimpleDateFormat(&yyyy-MM&);
Date date1 = // 开始日期
Date dEnd = // 结束日期
date1 = sdf.parse(StartDate);
dEnd = sdf.parse(endDate);
} catch (ParseException e) {
e.printStackTrace();
Calendar calBegin = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calBegin.setTime(date1);
Calendar calEnd = Calendar.getInstance();
// 使用给定的 Date 设置此 Calendar 的时间
calEnd.setTime(dEnd);
List&String& list = new ArrayList&String&();
int beginY = calBegin.get(Calendar.YEAR);
int beginYQ = Integer.parseInt(beginQ);
int endY = calEnd.get(Calendar.YEAR);
int endYQ = Integer.parseInt(endQ);
list.add(beginY + &年第& + beginYQ + &季度&);
if (beginY == endY && beginYQ == endYQ) {
beginYQ++;
if (beginYQ & 4) {
beginYQ = 1;
}while(true);
//根据季度给年设置月份
* 根据季度返回季度第一月
public static int setMonthByQuarter(int quarter){
if(quarter==1){
if(quarter==2){
if(quarter==3){
if(quarter==4){
return 10;
* 根据季度返回季度第一月或最后一月
* 0 起始月
public static String setMonthByQuarterToString(int type,int quarter){
if(quarter==1){
if(type==1){
return &03&;
return &01&;
if(quarter==2){
if(type==1){
return &06&;
return &04&;
if(quarter==3){
if(type==1){
return &09&;
return &07&;
if(quarter==4){
if(type==1){
return &12&;
return &10&;
return &01&;
* 根据月份获取所在季度
* @param month
private static int getQuarterByMonth(int month){
int quarter = 1;
if(month&=1&&month&=3){
if(month&=4&&month&=6){
if(month&=7&&month&=9){
if(month&=10&&month&=12){
public static void main(String[] args) throws Exception{
String start = &&;
String end = &&;
SimpleDateFormat sdf = new SimpleDateFormat(&yyyy-MM-dd&);
List&String& lDate = getDaysList(start, end);
for (String date : lDate)
System.out.println(date);
System.out.println(getWeeksList(&&,&&));-- aa=, bb=
System.out.println(getWeekDate(2,&aa&,&bb&,&cc&,&dd&,&&,&&,&13&,&16&));
System.out.println(getWeeksList(&&,&&,&13&,&16&));
System.out.println(getAllWeeks(&2013&));
System.out.println(getQuarterDate(1,&aaa&,&bbb&,&ccc&,&ddd&,&2014&,&2014&,&2&,&2&));
System.out.println(getYearBy(&2013&,&4&,&2014&,&2&));
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:334159次
积分:2251
积分:2251
排名:第13887名
原创:24篇
评论:71条
(2)(4)(2)(1)(2)(1)(3)(2)(2)(1)(1)(12)广东深圳手机网友
今年一季度业绩大涨!增长35%
为了维护自己的利益斗争到底
评论该主题
作者:您目前是匿名发表 &
作者:,欢迎留言
提示:用户在社区发表的所有资料、言论等仅代表个人观点,与本网站立场无关,不对您构成任何投资建议。用户应基于自己的独立判断,自行决定证券投资并承担相应风险。

我要回帖

更多关于 一个季度有几天 的文章

 

随机推荐