说明: 我希望在星期六和星期日得到星期和星期几的名字。有什么方法可以满足我的要求吗?
使用下面的代码,我得到了一周中的所有日期
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());
}
请帮助我解决这个问题?
答案 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星期二,则跳过自定义对象部分