如何使用Android中的SQLite计算两个日期之间的星期几

时间:2014-04-28 00:24:47

标签: java android sqlite

例如,给定一个学期的类的startDate和endDate,以及该类遇到的天数(星期一,星期三,星期五),是否有一个函数可以用来预先填充数据库,其中包含每个潜在的条目课堂会议?我是java / android和SQLite的新手。

类似的东西:

String[] mathDays = {Monday, Wednesday, Friday};

populateDatabase("4/28/14", "5/09/14", mathDays);

populateDatabase(String sDate, String eDate, String[] daysOfWeek) {
   //calculate each date to list
       daysList

   //put to database
   for (date d: daysList)
        //put the day, date, isAttended, isCancelled
    } 

这样数据库看起来像:

Day: Monday, Date: 4/28/14, isAttended: False, isCancelled: False;
Day: Wednesday, Date: 4/30/14, isAttended: False, isCancelled: False;
Day: Friday, Date: 5/2/14, isAttended: False, isCancelled: False;
//etc...

1 个答案:

答案 0 :(得分:0)

查看GregorianCalendarCalendar类。

您可以为开始日期和结束日期创建两个实例,然后只需使用add(...)方法一次添加一天到开始日期,直到您到达结束日期。实施例...

// When you first create calDate, set it to the start date
// then increment in a loop until you reach the end date.
calDate.add(Calendar.DATE, 1);

每次执行此操作,您都可以使用get(...)方法查看当天的情况。实施例...

int dayOfWeek = calDate.get(Calendar.DAY_OF_WEEK);

请注意Calendar类中的常量,星期日的int值为1,星期一为2等。

在您的示例代码中,您使用的是String[] daysOfWeek,但由于Calendar类使用的是int值,我建议您将其更改为int[]