Возможно, вы захотите отредактировать свой вопрос, чтобы описать, что на самом деле для вас не получается.
Не зная этого, общая проблема, которую я вижу, состоит в том, что нет ничего, что могло бы гарантировать, что вы подбираете правильное время ожидания для каждогоопределенное время входа.
Звучит так, как будто вы намереваетесь запускать сценарии «in» и «out» вручную или запускать их из событий входа и выхода из системы.Но это очень легко закончить с пропущенными или дополнительными записями: вы можете забыть и дважды включить 'in', или вы можете сделать несколько входов в систему (или оболочек, если инициируете таким образом), или ваша система может произойти сбой, прежде чем вы сможете сделать ожидаемыйclock 'out'.
Когда это произойдет, ваши два файла журнала будут не синхронизированы, и я почти уверен, что простое слияние панды (без параметров left_on и right_on или 'on', просто)пара записывает по порядку.Это не сработает, если они не будут идеально синхронизированы.
Более безопасный способ - записать все события в один и тот же файл, добавив третий столбец с надписью «IN» или «OUT».Затем, когда вы хотите объединить, вы, по крайней мере, гарантируете, что следующий «OUT» после каждого «IN» будет лучшим для использования.Это легко обнаружить ошибки, сканируя этот файл визуально.Программа также может легко проверить, чередует ли файл входы и выходы, и сообщить точно, где проблема, если нет.
Я делал это для аналогичной задачи в течение длительного времени.Ведение журнала запускается, когда я открываю и закрываю каждое окно оболочки * nix, поэтому у меня может быть несколько активных «in» одновременно;но все еще довольно легко выбрать правильный диапазон - просто возьмите первый из любого запуска событий IN и последний из ближайшего следующего запуска событий OUT.
Конечно, даже тогда вы можете включить часы в понедельник и каким-то образом вообще не включить часы до пятницы, когда вы выйдете.Практически любое решение будет выглядеть так, будто вы работали 24 часа в сутки всю неделю.Если вас беспокоит этот случай, ваше слияние может выдать предупреждение для любых рабочих смен, которые кажутся слишком длинными.
Надеюсь, что это поможет.Если нет, уточните вопрос, точно указав текущую проблему.