Я работаю над простым приложением для отслеживания времени и пытаюсь выяснить, каким был бы наиболее эффективный способ организации регулярного учета времени по длительности.У меня есть список объектов моего класса Timestamp, например:
public class Timestamp {
int status;
Date date;
}
Статус транслируется так:
private static final int OUT = 0;
private static final int IN = 1;
private static final int BREAK = 2;
Продолжительность вычисляется из отметки времени со статусом 1 к одномусо статусом 0 или 2. Мне нужно упорядочить мой список по дате, а затем удалить все бесполезные метки времени, то есть все метки времени с дублированным статусом.Есть мысли?
Обновление:
Попытка прояснить, что я имею в виду ... Сначала я опишу последовательность событий в моем приложении:
1. Пользователь включается / выключается / для перерыва.
2. Запись в моей базе данных создана.Таблица, в которой создается запись, имеет, среди прочего, столбец для даты и времени, когда пользователь включил / выключил вход, и столбец «статус».В столбце «статус» я сохраняю, вошел ли пользователь в такт, начинает ли его разрыв или работает с числовым значением, в этом примере 0 для выхода, 1 для входа и 2 для перерыва.
3. Теперь мое приложение должно вычислитьвремя, когда пользователь работал и его время перерыва на каждый день.Для простоты рабочее время рассчитывается от первого «прихода» дня до следующего «выключения» или от «прихода» до «перерыва».Время перерыва рассчитывается от первого «перерыва» до следующего «входа в часы».
4. Затем результат будет сохранен в другой таблице, где я сохраню продолжительность работы и продолжительность перерыва по дням.
Как я уже писал, мой подход будет следующим:
- Получить все данные из таблицы.
- Создать экземпляр моего класса Timestamp для каждой строки и поместить их в список.
- Удалить все записи, который я не использую для своих вычислений, например, дубликат «clock in» между «clock in» -Timestamp и «clock out» -Timestamp.
- перебирать список, находить связанные метки времени, удалять ихиз списка и создайте длительность.
- суммируйте все длительности, пока не будет обработан весь день.
- зафиксируйте этот день в другом списке, пока все данные не будут обработаны.
- вставьте данные чартированных длительностей в соответствующиеТаблица.
Как вы можете себе представить, объем данных может вырасти довольно огромным, поэтому я ищу быстрый и эффективный способ достижения своей цели.Надеюсь, это прояснит некоторые вещи.