一.获得现在的日期是本月的第几周
//*
*获取当前日期是本月的第几周? (根据这个月的星期三有几个来判断)
*@paramdateStr日期(形式: yyyy-MM-dd ) ) ) ) ) ) ) ) ) ) ) ) )。
*@return第n周
*@throwsException
*/
publicstaticintgetweekbywed (string datestr ) throwsException{
simpledateformatsdf=newsimpledateformat (yyyy-mm-DD ); //设定时间格式
datedate=SDF.parse(datestr;
calendar calendar=calendar.getinstance (;
calendar.settime(date;
//判断要计算的日期是否是星期天,减去一天计算星期六。 否则会出现问题,将在下一周计算
intday week=calendar.get (calendar.day _ of _ week ); /一周的第几天获取当前日期
if (1==天week ) {
calendar.add (calendar.day _ of _ month,-1);
}
安排一周的第一天。 按照中国的习惯,一周的第一天是星期一
calendar.setfirstdayofweek (calendar.Monday;
/一周的第几天获取当前日期
intday=calendar.get (calendar.day _ of _ week );
根据/日历的规则,从当前日期减去星期几和星期几的第一天之差,就是星期一
calendar.add(calendar.date,calendar.getFirstDayOfWeek ()-day );
calendar.add(calendar.date,2 ); //加2天就是星期三
//收到传入日本的这一周的星期三
string wed=SDF.format (calendar.gettime );
//本月天数
intdays=calendar.getactualmaximum (calendar.day _ of _ month );
intwek=3; //判断为星期三
intindex=0; //本月的第几个星期三
Listlist=newArrayList (;
for(inti=1; i=days; I ) {
calendar.set (calendar.day _ of _ month,I );
intweekd=calendar.get (calendar.day _ of _ week )-1; 注意,Calendar对象的默认星期天为1
if(weekd==wek ) {
string AAA=SDF.format (calendar.gettime );
list.add(AAA;
if(wed.equals(AAA ) ) }
index=list.size (;
}
}
}
返回索引;
}
二.取得指定日期的月有几周
//*
*获取指定日期的月份有多少周
*@paramdateStr
*@return
*@throwsException
*/
publicstaticintgetmonthweek (string datestr ) {
returnweekend(datestr,3 );
}
//*
*取得日的月是星期几
*@paramdateStr日期
*@parama星期几
*@return
*/
publicstaticintweekend (string datestr,inta ) {
数据格式格式=newsimpledateformat (yyyy-mm-DD );
intsunDay=0; //计数
try{
//获得本月的第一天
string start=dateutils.getfirstdaydateofmonth (datestr );
//获得本月的最后一天
string end=dateutils.getlastdayofmonth (datestr );
calendar start date=calendar.getinstance (; //开始时间
startdate.settime(format.parse ) start );
calendar end date=calendar.getinstance (; //结束时间
enddate.settime(format.parse ) end );
intsw=start date.get (calendar.day _ of _ week )-1; //开始日期是星期几
intew=end date.get (calendar.day _ of _ week )-1; //结束日期是星期几
long diff=end date.gettimeinmillis (-start date.gettimeinmillis );
longdays=diff/(1000*60*60*24 ); //指定的时间段一共有几天
longw=math.round(math.ceil () ) (daysSW(7-ew )/7.0 ) )//在给定的时间内,总共有多少周
Sunday=(int ) w; //每周日统计数
if(a
圣代---;
if(aew )//给定的星期数必须大于结束日期的星期数,并减少一天
圣代---;
}catch(exceptionse ) {
se.printStackTrace (;
}
returnsunDay;
}
三.取得传来日本之月的第一天和最后一天
//*
*获取到达日期月的第一天
*@paramdateStr
*@return
*/
publicstaticstringgetfirstdaydateofmonth (string datestr ) )。
datedate=dateutils.parse (datestr;
calendar cal=calendar.getinstance (;
cal.settime(date;
intlast=cal.getactualminimum (calendar.day _ of _ month );
cal.set(calendar.day_of_month,last );
//格式化日期
simpledateformatsdf=newsimpledateformat (yyyy-mm-DD );
returnSDF.format(cal.gettime ) );
}
//*
*获取到达日期月的最后一天
*@paramdateStr
*@return
*/
公共数据传输平台(stringgetlastdayofmonth )。
datedate=dateutils.parse (datestr;
calendar cal=calendar.getinstance (;
cal.settime(date;
intlast=cal.getactualmaximum (calendar.day _ of _ month );
cal.set(calendar.day_of_month,last );
//格式化日期
simpledateformatsdf=newsimpledateformat (yyyy-mm-DD );
returnSDF.format(cal.gettime ) );
}