比如说,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)

解决方案 »

  1.   

    网上找的。 
    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]);
    }
      

  2.   

    通过mysql:select dayofweek(now());可以查出指定日期是周几,你先把时间查出来,周几就可以得到了。然后得到周几,where 周几等1,3或者日
      

  3.   

    数据库的值是怎么存的,能不能sql语句查一把,然后把查询结果截个图贴出来看看。
      

  4.   

    SELECT DAYOFWEEK('xxx'); 刚发现这个还不错。
      

  5.   

    start_date 是date 类型的, start_time 是int 类型的
      

  6.   

    输出一个时间段内,时间与星期   后面的事情就简单了。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())
    {
    calendar.setTime(datenow);
    int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK) - 1;
    if (dayOfWeek < 0)
    dayOfWeek = 0;

    System.out.println(sdfInput.format(datenow));
    System.out.println(dayNames[dayOfWeek]);
    calendar.add(calendar.DATE,1);
    datenow = calendar.getTime();
    nowTime = datenow.getTime();
    }
    }
    }
      

  7.   

    import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;/**
     * 以2012年12月18日为起点,
     * 取出以后三个月中 周一,周三,周五的日期,
     *
     */
    public class Test
    {
    public static void main(String[] args)
    {
    Calendar cal = Calendar.getInstance();

    cal.set(Calendar.YEAR, 2012);
    cal.set(Calendar.MONTH, Calendar.DECEMBER);
    cal.set(Calendar.DAY_OF_MONTH, 18);

    Calendar c = (Calendar) cal.clone();
    c.add(Calendar.MONTH, 3);

    DateFormat df = new SimpleDateFormat("yyyy-MM-dd");

    while(!c.before(cal))
    {
    int day = cal.get(Calendar.DAY_OF_WEEK) ;
    if(day == Calendar.MONDAY || day == Calendar.WEDNESDAY || day == Calendar.FRIDAY)
    System.out.println(df.format(cal.getTime()));
    cal.add(Calendar.DATE, 1);
    }
    }
    }
    找到这么一段代码 不过没看明白是怎么实现的。原帖,http://bbs.csdn.net/topics/390320166
      

  8.   

    不知道LZ用的是什么数据库,现在使用Oracle实现了,其中TEST_TABLE为你的表名。希望对楼主有用。  select tt.tdate, to_char(tdate, 'day') as weekday
      from (select (select to_date(t.start_date) from TEST_TABLE t where t.id = 2 ) + rownum - 1 as tdate
              from all_objects
             where rownum <= (select to_date(t.end_date) from TEST_TABLE t where t.id = 2 ) -
                   (select to_date(t.start_date) from TEST_TABLE t where t.id = 2 ) + 1)  tt where to_char(tt.tdate, 'day') in ('星期一','星期二') 
      

  9.   

    http://zhidao.baidu.com/link?url=mN4xJTitBUksoBtebnfJi1Fia_uNSaIgeOZTeRDKk2y0mtUgc1P6TQcraDw05Ty-m_DUge5aeHlO5x2j52fcUq上面引用百度问答