Chinaunix首页 | 论坛 | 博客
  • 博客访问: 320
  • 博文数量: 1
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 20
  • 用 户 组: 普通用户
  • 注册时间: 2014-08-04 17:32
文章分类

全部博文(1)

文章存档

2014年(1)

我的朋友
最近访客

分类: Java

2014-08-04 17:38:27

有关日期的一些常用方法


import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;




public class DateUtil {
/**
*  根据年月判断该月的天数
* @param year
* @param month
* @return
*/
public static int getMonthOfDays(int year,int month)
{
int days=30;
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
days=31;
break;
//对于2月份需要判断是否为闰年
case 2:
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
days=29;
break;
} else {
days=28;
break;
}
case 4:
case 6:
case 9:
case 11:
days=30;
break;
default:
break;
}
return days;
}


/**
* 判断每月的第一天是周几
* @param year
* @param month
* @return
*/
public static int getWeekday(int year,int month)
{
String d = year + "-" + month + "-01";
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
int dayForWeek = 0;
try {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
Calendar c = Calendar.getInstance();
c.setTime(format.parse(d));


if(c.get(Calendar.DAY_OF_WEEK) == 1){
dayForWeek = 7;
}else{
dayForWeek = c.get(Calendar.DAY_OF_WEEK) - 1;
}
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}     
return dayForWeek;
}
/**
* 根据日期判断是该年的第几周
* @param year
* @param month
* @return
*/
public static int getWeek(int year,int month,String days)
{
String d = year + "-" + month +"-"+ days;
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
int weeks = 1;
try {
Date date = sdf.parse(d);     
Calendar calendar = Calendar.getInstance();
calendar.setFirstDayOfWeek(Calendar.MONDAY);
calendar.setTime(date);
weeks = calendar.get(Calendar.WEEK_OF_YEAR);
} catch (ParseException e) {
e.printStackTrace();
}  
return weeks;
}
/**
* 根据起始结束时间计算天数(一个月内的)
* @param begindate:起始时间
* @param enddate:结束时间
* @param monthdays:该月的天数
* @return
*/
public static int getDuration(String begin,String end,int monthdays)
{
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
int day1= 0;
int day2 = monthdays - Integer.parseInt(begin.split("-")[2])+1;
try {
Date begindate = sdf.parse(begin);  
Date enddate = sdf.parse(end);
long d = enddate.getTime() - begindate.getTime();
day1 = (int) (d/(24 * 60 * 60 * 1000))+1;
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}

return day1>day2?day2:day1;
}
/*
* 根据年份判断该年的天数
*/
public static int getDayOfYear(int year)
{
Calendar cal = Calendar.getInstance();
cal.set(Calendar.YEAR, year);
return cal.getActualMaximum(Calendar.DAY_OF_YEAR);
}
/**
* 根据日期判断为该年的第几天 
* @param dateStr:日期字符串"YYYY-MM-DD"
* @return
*/
public static int getDayinYear(String dateStr)
{
int dateSum = 0;
System.out.println(dateStr);
int year = Integer.valueOf(dateStr.split("-")[0]);
int month = Integer.valueOf(dateStr.split("-")[1]);
int day = Integer.valueOf(dateStr.split("-")[2]);
for (int i = 1; i < month; i++){
switch(i){
case 1: case 3: case 5: case 7: case 8: case 10: case 12:dateSum += 31; break;
case 4: case 6: case 9: case 11:dateSum += 30; break;
case 2: 
if(((year % 4 == 0) & (year % 100 != 0)) | (year % 400 == 0))
dateSum += 29;
else dateSum += 28;    
}
}
dateSum +=day;
return dateSum;
}
}

阅读(6) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~