Android 显示日期从一个星期到另一个星期(星期四到星期四)
Posted
技术标签:
【中文标题】Android 显示日期从一个星期到另一个星期(星期四到星期四)【英文标题】:Android Display date from one week to another like (Thursday to Thursday ) 【发布时间】:2014-02-23 18:30:57 【问题描述】:过去两天我一直被这个问题困扰。我的问题是:如何显示从一周到另一周(星期四到星期四)的日期?例如:
1/30/2014 to 2/6/2014
或
30 jan 2014 to 6 feb 2014
当一周结束时,它会发生变化:
2014 年 2 月 6 日至 2014 年 2 月 13 日
或
2014 年 2 月 6 日至 2014 年 2 月 13 日
任何帮助或示例代码将不胜感激。
【问题讨论】:
【参考方案1】:试试这个,
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());
其实我不喜欢安卓日历(我更喜欢Joda-Time),但上面的解决方案应该适合你
【讨论】:
对不起,这和android
有什么关系? =)
我说的是代码中使用的日历实例,Calendar API 很混乱。
好吧,你可以写你的答案来补充我的答案,向 OP 展示如何获得下周的时间为long
=)
好吧,我不知道setMaxDate()
,但我们可以将任何日期设置为日历实例,并以毫秒为单位检索时间为long MiliTime=cal.getTimeInMillis()
。
那就这样吧,兄弟! cal.getTimeInMillis()
的返回值被传递给 setMaxDate()
。好样的! =)【参考方案2】:
终于找到了解决办法,解决了我的问题:
在创建时:
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;
【讨论】:
【参考方案3】:在您的情况下,setMaxDate()
是您的朋友。文档说:
设置此 DatePicker 支持的最大日期(以毫秒为单位) 自 1970 年 1 月 1 日 00:00:00 在 getDefault() 时区。
所以,获取下周的时间为long
并使用该方法。
看看这里Set Limit on the DatePickerDialog in Android?
【讨论】:
以上是关于Android 显示日期从一个星期到另一个星期(星期四到星期四)的主要内容,如果未能解决你的问题,请参考以下文章
如何用C#从access中读取一个日期,然后判断这个日期是星期几?