package waf.datatype;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
*
* @author waf.wang
*
*/
public class DateTimeUtil
{
public static void main(String[] args)
{
List<String> list=getWeekPeriodList("2016-09-01","2016-09-20");
list=getMonthList("2016-01-01","2016-09-20");
//int i=0;
System.out.println(getFirstWorkDayOfWeek("2016-09-12"));
System.out.println(getLastWorkDayOfWeek("2016-09-12"));
System.out.println(getFirstDayOfMonth("2016-07-30"));
System.out.println(getLastDayOfMonth("2016-07-30"));
}
// public static String getFirstWorkDayOfWeek()
// {
// return new DateTime().getFirstWorkDayOfWeek();
// }
public static String getFirstWorkDayOfWeek()
{
return getFirstWorkDayOfWeek(null);
}
public static String getFirstWorkDayOfWeek(String date)
{
String ret="";
DateTime dt=new DateTime(date);
int dayOfWeek=dt.getDayOfWeek();
if(dayOfWeek==1)
{
ret=DateTimeUtil.addDay(dt.getDateString(), -6).substring(0, 10);
}
else
{
ret=DateTimeUtil.addDay(dt.getDateString(), 2-dayOfWeek).substring(0, 10);
}
return ret;
}
public static String getLastWorkDayOfWeek(String date)
{
return DateTimeUtil.addDay(getFirstWorkDayOfWeek(date),6).substring(0, 10);
}
public static String getLastWorkDayOfWeek()
{
return getLastWorkDayOfWeek(null);
}
public static List<String> getDayList(String beginDate,String endDate)
{
List<String> ret=new ArrayList<String>();
long diff=waf.datatype.DateTime.diffDay(endDate,beginDate);
if(diff>0)
{
for(int i=0;i<diff+1;i++)
{
String currDate=waf.datatype.DateTime.addDay(beginDate, i).substring(0,10);
ret.add(currDate);
}
}
else
{
ret.add(beginDate.substring(0, 10));
ret.add(endDate.substring(0, 10));
}
return ret;
}
public static List<String> getHourList(String beginTime,String endTime)
{
List<String> ret=new ArrayList<String>();
String currDate=beginTime;
while(true){
currDate=waf.datatype.DateTime.addSecond(currDate, 60*60);
ret.add(currDate);
if(endTime.equals(currDate)){
break;
}
}
return ret;
}
public static Map<String, String> getWeekMap(String beginDate,String endDate)
{
Map<String, String> map=new LinkedHashMap<String, String>();
String firstDay=getFirstWorkDayOfWeek(beginDate);
String lastDay="";
while(true)
{
lastDay=DateTime.addDay(firstDay, 6).substring(0, 10);
map.put(firstDay, lastDay);
firstDay=DateTime.addDay(lastDay, 1).substring(0, 10);
if(DateTime.diffDay(endDate, firstDay)<0 || map.size()>100)
{
break;
}
}
return map;
}
public static String addDay(String strDateTime,int iDay)
{
DateTime dataTime=new DateTime();
dataTime.setString(strDateTime);
return dataTime.addDay(iDay);
}
public static String getFirstDayOfMonth()
{
return new DateTime().getDateString().substring(0, 7)+"-01";
}
public static String getFirstDayOfMonth(String date)
{
return new DateTime(date).getDateString().substring(0, 7)+"-01";
}
public static String getLastDayOfMonth()
{
return addDay(getFirstDayOfMonth(new DateTime().addMonth(1)),-1).substring(0, 10);
}
public static String getLastDayOfMonth(String date)
{
return addDay(getFirstDayOfMonth(new DateTime(date).addMonth(1)),-1).substring(0, 10);
}
public static List<String> getWeekPeriodList(String beginDate,String endDate)
{
List<String> list=new ArrayList<String>();
String firstDay=getFirstWorkDayOfWeek(beginDate);
String lastDay="";
while(true)
{
//lastDay=DateTime.addDay(firstDay, 6).substring(0, 10);
lastDay=getLastWorkDayOfWeek(firstDay);
list.add(firstDay+"_"+lastDay);
firstDay=DateTime.addDay(lastDay, 1).substring(0, 10);
if(DateTime.diffDay(endDate, firstDay)<0 || list.size()>100)
{
break;
}
}
return list;
}
public static List<String> getMonthPeriodList(String beginDate,String endDate)
{
List<String> list=new ArrayList<String>();
String firstDay=getFirstDayOfMonth(beginDate);
String lastDay="";
while(true)
{
lastDay=getLastDayOfMonth(firstDay);
list.add(firstDay+"_"+lastDay);
firstDay=DateTime.addDay(lastDay, 1).substring(0, 10);
if(DateTime.diffDay(endDate, firstDay)<0 || list.size()>100)
{
break;
}
}
return list;
}
public static List<String> getMonthList(String beginDate,String endDate)
{
List<String> list=new ArrayList<String>();
String firstDay=getFirstDayOfMonth(beginDate);
String lastDay="";
while(true)
{
lastDay=getLastDayOfMonth(firstDay);
list.add(firstDay.substring(0, 7));
firstDay=DateTime.addDay(lastDay, 1).substring(0, 10);
if(DateTime.diffDay(endDate, firstDay)<0 || list.size()>100)
{
break;
}
}
return list;
}
public static String addSecond(String strDateTime,int iSecond)
{
DateTime dataTime=new DateTime();
dataTime.setString(strDateTime);
return dataTime.addSecond(iSecond);
}
}
Java时间处理Util类
最新推荐文章于 2022-11-29 23:56:02 发布