Java 让Android查找日期并计算从现在到现在的天数

Java 让Android查找日期并计算从现在到现在的天数,java,android,date,Java,Android,Date,我在这方面是个新手。 但我想知道,例如2013年7月的第一个星期天,然后Android应该计算从现在到那时的天数。 非常感谢你的帮助 Calendar thatDay = Calendar.getInstance(); thatDay.set(Calendar.DAY_OF_MONTH,25); thatDay.set(Calendar.MONTH,7); // 0-11 so 1 less thatDay.set(Calendar.YEAR, 1985); Calendar

我在这方面是个新手。 但我想知道,例如2013年7月的第一个星期天,然后Android应该计算从现在到那时的天数。 非常感谢你的帮助

 Calendar thatDay = Calendar.getInstance();
  thatDay.set(Calendar.DAY_OF_MONTH,25);
  thatDay.set(Calendar.MONTH,7); // 0-11 so 1 less
  thatDay.set(Calendar.YEAR, 1985);

  Calendar today = Calendar.getInstance();

  long diff = today.getTimeInMillis() - thatDay.getTimeInMillis(); //result in millis
这是一个近似值

long days = diff / (24 * 60 * 60 * 1000);
要从字符串解析日期,可以使用

  String strThatDay = "1985/08/25";
  SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
  Date d = null;
  try {
   d = formatter.parse(strThatDay);//catch exception
  } catch (ParseException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } 


  Calendar thatDay = Calendar.getInstance();
  thatDay.setTime(d); //rest is the same....
这是一个近似值

long days = diff / (24 * 60 * 60 * 1000);
要从字符串解析日期,可以使用

  String strThatDay = "1985/08/25";
  SimpleDateFormat formatter = new SimpleDateFormat("yyyy/MM/dd");
  Date d = null;
  try {
   d = formatter.parse(strThatDay);//catch exception
  } catch (ParseException e) {
   // TODO Auto-generated catch block
   e.printStackTrace();
  } 


  Calendar thatDay = Calendar.getInstance();
  thatDay.setTime(d); //rest is the same....

如果您打算使用Java进行一些关于日期的高级计算,我建议使用Joda库()

使用此库解决您的问题,可以这样做:

LocalDate firstSundayOfJuly = new LocalDate(2013, 7, 1);
firstSundayOfJuly = firstSundayOfJuly.dayOfWeek().withMaximumValue();
Interval i = new Interval(LocalDate.now().toDateTimeAtStartOfDay(), 
            firstSundayOfJuly.toDateTimeAtStartOfDay());
System.out.println("days = " + i.toDuration().getStandardDays());

如果您打算使用Java进行一些关于日期的高级计算,我建议使用Joda库()

使用此库解决您的问题,可以这样做:

LocalDate firstSundayOfJuly = new LocalDate(2013, 7, 1);
firstSundayOfJuly = firstSundayOfJuly.dayOfWeek().withMaximumValue();
Interval i = new Interval(LocalDate.now().toDateTimeAtStartOfDay(), 
            firstSundayOfJuly.toDateTimeAtStartOfDay());
System.out.println("days = " + i.toDuration().getStandardDays());

谢谢,差异正在计算中,但是我怎样才能知道一个月内的第一个星期一、星期天或其他时间???应该说,7月的第一个星期日是2013年7月7日,例如,谢谢,差异正在计算中,但我如何才能找出一个月的第一个星期一、星期日或其他时间???应该说7月的第一个星期日是2013年7月7日,例如,试试这个链接,它有很多解决问题的方法:Java内置了很好的日期和时间功能。下一次可能会对java日历示例进行更多的研究。试试这个链接,它有很多解决您问题的方法:java内置了很好的日期和时间功能。下一次可能会对java的日历示例进行更多的研究。