Android显示日期从一周到另一周像(周四到周四)
过去两天我一直坚持这个问题。 我的问题是:如何显示从一周到另一周(周四到周四)的日期? 例如:
1/30/2014 to 2/6/2014
要么
30 jan 2014 to 6 feb 2014
当周完成然后它的变化喜欢:
2014年2月6日至2014年2月13日
要么
2014年2月6日至2014年3月13日
任何帮助或示例代码将受到高度赞赏。
试试这个,
String start_date = "01-30-2014"; // Start date SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy"); Calendar cal = Calendar.getInstance(); try { c.setTime(sdf.parse(start_date)); } catch (ParseException e) { e.printStackTrace(); } cal.add(Calendar.DATE, 7); // number of days to add,in your case its 7 SimpleDateFormat sdf1 = new SimpleDateFormat("dd-MM-yyyy"); String to_date = sdf1.format(cal.getTime());
其实我不喜欢android日历(我更喜欢Joda-Time ),但上面的解决方案应该适合你
在你的情况下, setMaxDate()
是你的朋友。 文档说:
设置此DatePicker支持的最大日期,以自getDefault()时区1970年1月1日00:00:00开始的毫秒数。
所以,获取下周的long
并使用该方法。
看看这里Android上的DatePickerDialog设置限制?
最后我找到了解决方案并解决了我的问题:
在oncreate:
TextView tv_chart_menuvotes = (TextView) findViewById(R.id.tv_chart_menuvotes); String csPrevThur = getPreviousThursday(); String csNextThur = getNextThursday(); tv_chart_menuvotes.setText("Vote from " + csPrevThur + " To "+ csNextThur);
在oncreate之外:
public String getPreviousThursday() { String csDate = ""; int perSut = 0; Calendar calendar = Calendar.getInstance(); int day = calendar.get(Calendar.DAY_OF_WEEK); switch (day) { case Calendar.SUNDAY: perSut = -3; break; case Calendar.MONDAY: perSut = -4; break; case Calendar.TUESDAY: perSut = -5; break; case Calendar.WEDNESDAY: perSut = -6; break; case Calendar.THURSDAY: perSut = 0; break; case Calendar.FRIDAY: perSut = -1; break; case Calendar.SATURDAY: perSut = -2; break; } SimpleDateFormat mDF = new SimpleDateFormat("dd-MM-yyyy"); calendar.add(Calendar.DAY_OF_MONTH, perSut); csDate = mDF.format(calendar.getTime()); System.out.println("Prev Thursday >> " + csDate); return csDate; } public String getNextThursday() { String csDate = ""; int perSut = 0; Calendar calendar = Calendar.getInstance(); int day = calendar.get(Calendar.DAY_OF_WEEK); switch (day) { case Calendar.SUNDAY: perSut = 4; break; case Calendar.MONDAY: perSut = 3; break; case Calendar.TUESDAY: perSut = 2; break; case Calendar.WEDNESDAY: perSut = 1; break; case Calendar.THURSDAY: perSut = 7; break; case Calendar.FRIDAY: perSut = 6; break; case Calendar.SATURDAY: perSut = 5; break; } SimpleDateFormat mDF = new SimpleDateFormat("dd-MM-yyyy"); calendar.add(Calendar.DAY_OF_MONTH, perSut); csDate = mDF.format(calendar.getTime()); System.out.println("NextThursday >> " + csDate); return csDate; }