日期:2014-05-17  浏览次数:20724 次

请教如何计算某一段日期内星期几是多少号?
比如说,2013-11-7 到2013-11-30 这段日期内, 周一,周三,周日分别为10,11,13,17,18,20,24,25,27 日 , 如何才能通过程序取出来呢。


最好是通过sql 语句直接取出来,如果不能java 代码也行。
数据库中这么存的,start_date(2013-7-11)   end_date(2013-11-30)   days(1,3,7)

------解决方案--------------------
网上找的。 

public static void main(String[] args) {
final String dayNames[] = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五",
"星期六" };

String s = "2013-11-7";

SimpleDateFormat sdfInput = new SimpleDateFormat("yyyy-MM-dd");

Calendar calendar = Calendar.getInstance();
Date date = new Date();

try {
date = sdfInput.parse(s);
} catch (ParseException e) {
e.printStackTrace();
}

calendar.setTime(date);
int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;
if (dayOfWeek < 0)
dayOfWeek = 0;
System.out.println(dayNames[dayOfWeek]);
}

------解决方案--------------------
通过mysql:

select dayofweek(now());

可以查出指定日期是周几,你先把时间查出来,周几就可以得到了。然后得到周几,where 周几等1,3或者日
------解决方案--------------------
数据库的值是怎么存的,能不能sql语句查一把,然后把查询结果截个图贴出来看看。
------解决方案--------------------
SELECT DAYOFWEEK('xxx'); 刚发现这个还不错。
------解决方案--------------------
你数据库时间那两列是什么类型的数据?日期类型or字符串类型?
------解决方案--------------------
输出一个时间段内,时间与星期   后面的事情就简单了。

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


public class Test {
public static void main(String[] args) {
final String dayNames[] = { "星期日", "星期一", "星期二", "星期三", "星期四", "星期五",
"星期六" };

String begin = "2013-11-01";
String end = "2013-11-10";

SimpleDateFormat sdfInput = new SimpleDateFormat("yyyy-MM-dd");


Date date = new Date();
Date dateb = new Date();
Date datee = new Date();
try {
dateb = sdfInput.parse(begin);
datee = sdfInput.parse(end);
} catch (ParseException e) {
e.printStackTrace();
}
long nowTime = dateb.getTime();

Date datenow = new Date();
datenow.setTime(nowTime);
Calendar calendar = Calendar.getInstance();
while(nowTime>=dateb.getTime()&&nowTime<=datee.getTime())
{ <