Ошибку в сравнении дат(в миллисекундах)
Я выбираю дату в DateRangePicker, после этого через свой класс DateCutter разделяю строку даты на дату начала и конца, перевожу в миллисекунды. Потом сравниваю первую дату с сегодняшней датой и в зависимости от того равны эти даты или нет я распределяю элементы между таблицами базы данных.
Думаю, что проблема в сравнении, т.к. никаких ошибок нет, просто элемент всегда добавляется в таблицу Planned (Это происходит в elese, файл AddElement.java).
AddElement.java(основное активити)
public class AddElement extends AppCompatActivity {
private DBHelper dbHelper;
private ArrayList<String> subtasks;
private SubtasksAdapter adapter;
private RecyclerView recyclerView;
private TextView tvDate;
private Long today, firstDate, secondDate;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.add_element);
tvDate = findViewById(R.id.date);
//Установление даты на текствью датапикера
Date currentDate = new Date();
DateFormat formatter = new SimpleDateFormat("dd MMM", Locale.getDefault());
tvDate.setText(formatter.format(currentDate) + " - " + formatter.format(currentDate));
//Сегодняшняя дата
today = MaterialDatePicker.todayInUtcMilliseconds();
androidx.core.util.Pair<Long, Long> selection = new androidx.core.util.Pair<>(today, today);
CalendarConstraints.Builder constraintBuilder = new CalendarConstraints.Builder();
constraintBuilder.setValidator(DateValidatorPointForward.now());
MaterialDatePicker.Builder<androidx.core.util.Pair<Long, Long>> builder = MaterialDatePicker.Builder.dateRangePicker();
builder.setSelection(selection);
builder.setCalendarConstraints(constraintBuilder.build());
final MaterialDatePicker materialDatePicker = builder.build();
//Открытие датапикера
tvDate.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
materialDatePicker.show(getSupportFragmentManager(), "TAG");
}
});
//Получение данных из датапикера
materialDatePicker.addOnPositiveButtonClickListener(new MaterialPickerOnPositiveButtonClickListener() {
@Override
public void onPositiveButtonClick(Object selection) {
tvDate.setText(materialDatePicker.getHeaderText());
DateCutter dateCutter = new DateCutter(materialDatePicker.getHeaderText());
try {
firstDate = dateCutter.getFirst();
} catch (ParseException e) {
e.printStackTrace();
}
try {
secondDate = dateCutter.getSecond();
} catch (ParseException e) {
e.printStackTrace();
}
}
});
dbHelper = new DBHelper(this);
}
//Добавление данных в бд
public void imageButtonOnClick(View view) {
TextView tvTask = findViewById(R.id.task);
TextView tvComment = findViewById(R.id.comment);
String task = tvTask.getText().toString();
String comment = tvComment.getText().toString();
String time = tvDate.getText().toString();
ArrayList<String> subtasks = adapter.getElements();
if (!task.equals("")) {
if (firstDate.equals(today))
dbHelper.addTableHome(new Items(null, task, comment, time, null));
else
dbHelper.addTablePlanned(new Items(null, task, comment, time, null));
}
finish();
}
DateCutter.java(мой класс)
public class DateCutter {
ArrayList<Long> list;
String headerText;
public DateCutter(@NonNull String headerText) {
this.headerText = headerText;
}
//Получение даты начала
public Long getFirst() throws ParseException {
String firstDateST = new String(headerText.substring(0, 6));
Date firstDate;
SimpleDateFormat formatter = new SimpleDateFormat("dd MMM");
firstDate = formatter.parse(firstDateST);
return firstDate.getTime();
}
//Дата конца
public Long getSecond() throws ParseException {
String secondDateST = new String(headerText.substring(10, 16));
Date secondDate;
SimpleDateFormat formatter = new SimpleDateFormat("dd MMM");
secondDate = formatter.parse(secondDateST);
return secondDate.getTime();
}