计算textview中经过的天数[重复]

Posted

技术标签:

【中文标题】计算textview中经过的天数[重复]【英文标题】:Count days elapsed in textview [duplicate] 【发布时间】:2021-03-14 03:08:45 【问题描述】:

我想计算elapsed days 并在文本视图中显示它们。我使用datepickerdialog 选择日期,从这个日期开始显示已经过去了多少天

当我按下textview 时,datepickerdialog 打开,

这是代码

public class MainActivity extends AppCompatActivity 
    TextView cal, dias;

    private String Parto;
    @Override
    protected void onCreate(Bundle savedInstanceState) 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        cal = (TextView) findViewById(R.id.calen);
        dias = (TextView) findViewById(R.id.days);

        cal.setOnClickListener(new View.OnClickListener() 
            @Override
            public void onClick(View v) 
            final Calendar calendar = Calendar.getInstance();
                DatePickerDialog datePickerDialog = new DatePickerDialog(MainActivity.this, new DatePickerDialog.OnDateSetListener() 
                    @Override
                    public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) 
                        Calendar calendar1 = Calendar.getInstance();
                        calendar1.set(Calendar.YEAR,year);
                        calendar1.set(Calendar.MONTH,month);
                        calendar1.set(Calendar.DAY_OF_MONTH,dayOfMonth);
                        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("dd/MM/yyyy", Locale.getDefault());
                        Date date = calendar1.getTime();
                        Parto = simpleDateFormat.format(date);
                        cal.setText(Parto);
                    
                ,calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH));
                datePickerDialog.show();
            
        );



    

 

我想以textview days 显示经过的天数

非常感谢

【问题讨论】:

考虑不使用CalendarSimpleDateFormatDate。这些课程设计不良且早已过时。而是使用来自java.time, the modern Java date and time API 的LocalDate 【参考方案1】:

试试这个

 long diff = System.currentTimeMillis() - calendar1.getTimeInMillis();

 dias.setText("" + TimeUnit.MILLISECONDS.toDays(diff));

希望这会有所帮助。随时要求澄清...

【讨论】:

在极端情况下会给出错误的结果。 TimeUnit 假设一天总是 24 小时,但由于夏令时 (DST) 和其他时间异常,一天可能会长达 23 或 25 小时。 更好的方法是使用现代的 java.time 类。

以上是关于计算textview中经过的天数[重复]的主要内容,如果未能解决你的问题,请参考以下文章

android计算一年每月的天数.

Java,计算两个日期之间的天数[重复]

计算剩余天数[重复]

计算剩余天数[重复]

计算日期之间的天数,不计算周六和周日[重复]

在html中计算两个输入类型=“日期”之间的天数[重复]