我怎样才能获得本周的所有日期名称以及周六的所有日期而没有星期六和星期日的安卓?

时间:2016-07-19 10:44:19

标签: android date

说明:            我希望在星期六和星期日得到星期和星期几的名字。有什么方法可以满足我的要求吗?

使用下面的代码,我得到了一周中的所有日期

String[] days_si = new String[7];
        for (int i = 0; i < 7; i++) {
            days_si[i] = format.format(calendar.getTime());
            calendar.add(Calendar.DAY_OF_MONTH, 1);
        }
        for (int i = 0; i < days_si.length; i++) {
            Log.i(TAG, "Days : " + days_si[i].toString());
        }
请帮助我解决这个问题?

2 个答案:

答案 0 :(得分:1)

您应该查看SimpleDateFormat提供的各种格式模式。

例如:

DateFormat format = new SimpleDateFormat("u EEEE");

将输出为

Days : 7 Sunday
Days : 1 Monday...

根据您的需要尝试各种模式。

关于要在周六和周日跳过的部分: - 您可以在第一个if循环中添加一个简单的for检查,以查看format()方法的格式化字符串return包含星期六或星期日的字符串,如果是,则不要将它们添加到字符串数组中。

答案 1 :(得分:0)

在下面找到如何跳过某一天, 以及如何获取日期名称(短或完整)

String[] days_si = new String[7];
for (int i = 0; i < 7; i++) {

    //skip SATURDAY's
    if(calendar.get(Calendar.DAY_OF_WEEK) == Calendar.SATURDAY){
        calendar.add(Calendar.DAY_OF_MONTH, 1);
        --i; //THIS PART TO AVOID EMPTY ARRAY ITEMS
        continue;
    }

    //in your format pattern, use EEE to get short day name
    //or use EEEE to get full name
    days_si[i] = format.format(calendar.getTime());
    calendar.add(Calendar.DAY_OF_MONTH, 1);
}
for (int i = 0; i < days_si.length; i++) {
    Log.i(TAG, "Days : " + days_si[i].toString());
}

**更多--i; //THIS PART TO AVOID EMPTY ARRAY ITEMS 在迭代中,如果一天是星期六,则循环将跳过而不在days_si[i]中添加值,这将导致空数组槽,因为下一个循环i将增加1,因此{ {1}}将保持为空或为空。

您可能需要一个对象数组(自定义对象)包含2个属性 days_si[i-1]String dateOfDay,使用此数组存储for循环中每次迭代的日期日期和日期名称

如果您希望输出在一行中,例如: 2016-07-19星期二,则跳过自定义对象部分