开始日期到结束日期的天数和每天是星期几
2017-08-25 10:46
786 查看
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];
}
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];
}
相关文章推荐
- 计算两日期相差天数(用字符串格式的时间形式来比较)、将时间戳转为字符串,开始到结束的时间差(用时间戳来比较)
- 计算从开始日期到结束日期经过的天数
- sql 生成开始日期到结束日期与开始日期的相差天数
- Extjs2.2 开始时间,结束时间,工期 联动(选二补一),包含日期,天数的互转
- datetimebox输入开始结束日期,JS计算天数并赋值
- 给一个开始日期加上一个天数,计算结束日期
- SQL : 开始日期和结束日期,SQL找出中间的所有日期. 关于天数。
- JAVA得到一个指定日期范围内每天的开始时间和结束时间
- 新工作之初+问题:结束日期要大于开始日期+天数
- 开始日期,加天数,求结束日期(跨年,闰年)
- 利用Asp.net中的AJAX制作网页上自动选取开始日期及结束日期的用户自定义控件
- PHP获取当前日期所在星期(月份)的开始日期与结束日期(实现代码)
- my97datepicker开始日期小于结束日期格式化时间精确届时分秒
- Calendar根据输入的年份和周数计算该周的开始日期和结束日期
- 计算每一周的开始日期和结束日期
- 输入开始的dateTime、要显示的月份数、显示第几周的星期几,结束的时和分,输出符合上面条件的datetime list
- 【java】根据开始时间、结束时间得到两个时间段内所有的日期
- sql server 2000关于开始日期,结束日期的查询
- my97datepicker开始日期小于结束日期格式化时间精确届时分秒
- php获取指定日期的一周开始及结束日期,支持一周是从周几开始