在android中的日历并添加天数到数组

时间:2013-12-27 13:58:38

标签: android

我想获取当月的所有日期并将其添加到列表中。我想将它们添加为String:Sun,12月1日。只有我得到的是具有当前日期的Calendar对象。我怎样才能做到这一点?这是Calendar中的任何函数在字符串Monday或somethig上解析int天?如何以这种特定方式添加所有日子? 这就是我在这一刻所得到的:

int day = Calendar.getInstance().get(Calendar.DAY_OF_MONTH);
        int daysInMonth = Calendar.getInstance().getActualMaximum(Calendar.DAY_OF_MONTH);

        for(int i = 0; i < daysInMonth; i++){
            //here I want to add strings, but don't know how 
        }

2 个答案:

答案 0 :(得分:8)

您需要使用SimpleDateFormat根据需要获取日期字符串并添加到列表。然后将日期移至第二天。

查看下面的代码

Calendar mCalendar = Calendar.getInstance();
int daysInMonth = mCalendar.getActualMaximum(Calendar.DAY_OF_MONTH);

ArrayList<String> allDays = new ArrayList<String>();
SimpleDateFormat mFormat = new SimpleDateFormat("EEE, dd MMM", Locale.US);
for(int i = 0; i < daysInMonth; i++){
    // Add day to list
    allDays.add(mFormat.format(mCalendar.getTime()));
    // Move next day
    mCalendar.add(Calendar.DAY_OF_MONTH, 1);
}

此方法将月中的所有日期添加到列表中,但在许多情况下,这也将添加下个月的日期。如果您不想这样,请参阅下面的方法。


如果您想从今天(指定日期)仅添加剩余天数,请使用以下代码

Calendar mCalendar = Calendar.getInstance();
// Calculate remaining days in month
int remainingDay = mCalendar.getActualMaximum(Calendar.DAY_OF_MONTH) - mCalendar.get(Calendar.DAY_OF_MONTH) + 1;
ArrayList<String> allDays = new ArrayList<String>();
SimpleDateFormat mFormat = new SimpleDateFormat("EEE, dd MMM", Locale.US);
for(int i = 0; i < remainingDay; i++){
    // Add day to list
    allDays.add(mFormat.format(mCalendar.getTime()));
    // Move next day
    mCalendar.add(Calendar.DAY_OF_MONTH, 1);
}

这将仅返回[Fri, 27 Dec, Sat, 28 Dec, Sun, 29 Dec, Mon, 30 Dec, Tue, 31 Dec](截至2013年12月27日)。所以我认为你正在寻找这种方法。

答案 1 :(得分:1)

    try {
         SimpleDateFormat dateFormat = new SimpleDateFormat("d MMM yyyy",Locale.getDefault());
         result = dateFormat.format(Calener.getInstance().getTime());
} catch (ParseException e) {
}

结果将于2013年12月27日