【问题标题】:Date picker to Days conversion日期选择器到天的转换
【发布时间】:2015-11-17 13:13:51
【问题描述】:

我正在尝试将日期选择器中的日期转换为 Android 中的天数。 例如,如果我选择 19/11/2015,则天数应为 2 天。我需要为此找到解决方案,因为它对我的项目很重要。网上有很多解决方案可以获取两个日期之间的天数,但不是从一个日期开始。有人可以帮忙吗?

以下是我必须设置和转换日期的方法。

public void onDateSet(DatePickerDialog view, int year, int monthOfYear, int dayOfMonth) {
    String date = +dayOfMonth+"/"+(++monthOfYear)+"/"+year;

    Calendar end = Calendar.getInstance();
    end.set(year, monthOfYear, dayOfMonth);
    long timenow= System.currentTimeMillis();


    long endDate = end.getTimeInMillis();

    long diffTime = endDate - timenow;
   days = (int) (diffTime / (1000 * 60 * 60 * 24));
    DateFormat dateFormat = DateFormat.getDateInstance();
    dateFormat.format(endDate);
    //System.out.println(diffDays);


    dateTextView.setText(Integer.toString(days));

【问题讨论】:

  • “比如我选择19/11/2015,天数应该是2天”,为什么是2?
  • 为您遇到的错误发布了答案。现在对于您问题的另一部分,从单个日期获取天数是什么意思?其背后的逻辑是什么?
  • 看起来还剩几天...因为 2015 年 19 月 11 日还剩 2 天...

标签: android date android-datepicker


【解决方案1】:

回答:

现在它给了我这个错误

错误的原因是您试图将 int 设置为 dateTextView 的值。

代替dateTextView.setText(days); 试试dateTextView.setText(Integer.toString(days));

【讨论】:

  • 错误消失了,但我没有得到正确的天数。它显示 16787。可能这不是从当前日期获取天数的方法吗?
  • 然后您可以使用任何标准示例来查找两个日期之间的差异。一个日期将是当前日期,另一个日期将是根据用户输入构建的日期。有很多例子可以发现两个日期之间的差异。一个这样的例子:stackoverflow.com/questions/1555262/…
  • 我已经更新了我的代码。我得到 32 天而不是 2 天。像 34 天而不是 4 天。明白了吗?我不知道怎么了。你能纠正我吗?
  • 好的,我明白了。实际上,月份数字是从零开始的。 1 月 -0 日和 12 月 11 日。非常感谢。
猜你喜欢
  • 2018-11-23
  • 1970-01-01
  • 2020-06-11
  • 1970-01-01
  • 2019-01-02
  • 1970-01-01
  • 2016-12-16
  • 2012-10-17
  • 1970-01-01
相关资源
最近更新 更多