计算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 显示经过的天数
非常感谢
【问题讨论】:
考虑不使用Calendar
、SimpleDateFormat
和Date
。这些课程设计不良且早已过时。而是使用来自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中经过的天数[重复]的主要内容,如果未能解决你的问题,请参考以下文章