开始日期到结束日期的天数和每天是星期几


public static void main(String[] args) {

SimpleDateFormat format = new java.text.SimpleDateFormat("yyyy-MM-dd");
try {
// 开始时间
Date beginDate = format.parse("2017-08-23");
// 结束时间
Date endDate = format.parse("2017-08-25");
long day = (endDate.getTime() - beginDate.getTime()) / (24 * 60 * 60 * 1000);
int dayNum = Integer.parseInt(String.valueOf(day));
if (dayNum > -1) {
for (int i = 0; i <= dayNum; i++) {
// 获取天数
System.out.println(getDateAdd("2017-08-23",i));
// 获取星期
System.out.println(dateToWeek(getDateAdd("2017-08-23",i)));
}
}
} catch (ParseException e) {
e.printStackTrace();
}

}

/**
* 获取开始日期到结束日期的天数

* @param date
*            传入字符串日期,例如:2011-01-03
* @param addNumber
*            传入整数
* @return
*/
public static String getDateAdd(String date, int addNumber) {
String returnStr = "";
StringTokenizer token = new StringTokenizer(date, "-");
int num = token.countTokens();
if (num == 3) {
int year;
int month;
int day;
year = Integer.parseInt(token.nextToken());
month = Integer.parseInt(token.nextToken());
day = Integer.parseInt(token.nextToken());
SimpleDateFormat formatter;
formatter = new SimpleDateFormat("yyyy-MM-dd");
Calendar calen = Calendar.getInstance();
calen.set(year, month - 1, day);
calen.add(5, addNumber); // 5代表日期,1代表年,2代表月
returnStr = formatter.format(calen.getTime());
} else
returnStr = date;
return returnStr;
}

/**
* 日期转星期

* @param datetime
* @return
*/
public static String dateToWeek(String datetime) {
SimpleDateFormat f = new SimpleDateFormat("yyyy-MM-dd");
String[] weekDays = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六" };
Calendar cal = Calendar.getInstance(); // 获得一个日历
Date datet = null;
try {
datet = f.parse(datetime);
cal.setTime(datet);
} catch (ParseException e) {
e.printStackTrace();
}
int w = cal.get(Calendar.DAY_OF_WEEK) - 1; // 指示一个星期中的某天。
if (w < 0)
w = 0;
return weekDays[w];
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值