Skip to content

Parses table from .md file and generates report (Finished)

Notifications You must be signed in to change notification settings

EvgeniyShemenev2022/mdReportMaker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

30 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

# Задание

  • нужно написать программу с консольным интерфейсом для анализа файлов отчета о затраченной работе программиста.

Детали

  • работники компании каждый день заполняют специальный файл в формате markdown.
  • Для расчета их зарплаты и оценки эффективности необходимо написать программу для анализа этих отчетов
  • пример отчета в файле "data sample.md"
  • Анализировать нужно секцию # Timing
  • В секции # Timing всегда есть таблица c такой шапкой
| №   | time  | tasks      | desc      |
|:----|:------|:-----------|:----------|
  • Столбец № отвечает за порядковый номер строки, начинается с 1
  • Столбец time хранит время начала очередных работ над задачей в формате Час:Минута. 10:05 означает, что сотрудник начал работу над задачей в 10:05
    • значения столбца time имеют следующий диапазон [00:00, 23:59]
  • столбец tasks хранит название задачи. Пробелы не являются частью названия задачи
  • столбец desc это столбец краткого описания проведенных работ. Часто бывает пустым
  • последняя строка таблицы всегда завершается строкой в столбце tasks которой, записано слова "end". Пример
| №   | time  | tasks      | desc         |
|:----|:------|:-----------|:-------------|
| 1   | 10:05 | inbox      |              |
| 2   | 10:48 | break      |              |
| 3   | 11:00 | persreview |              |
| 4   | 20:01 | end        |              |
  • работник начал в 10:05 задачу inbox
  • в 10:48 отошел на перерыв
  • в 11:00 закончил перерыв и отправился на персональное ревью(persreview)
  • в 20:01 закончилось ревью и работник закончил работу
  • необходимо проанализировать таблицы по следующие логике:
    • подсчитать суммарное время работы над каждой задачей за день
    • подсчитать время затраченное на перерывы, которое всегда обозначается как задача break
    • подсчитать время затраченное на работу за день
    • подсчитать время затраченное на работу за день без перерывов
  • пример работы программы
    • дан файл 2022.01.01.md с содержинием:

# Day
* 2022.01.01

# Timing

| №   | time  | tasks              | desc                |
|:----|:------|:-------------------|:--------------------|
| 1   | 10:05 | inbox              | много почты         |
| 2   | 11:48 | break              | кофе                |
| 3   | 12:00 | утреннее совещание |                     |
| 4   | 12:30 | break              | Обед                |
| 5   | 13:30 | ID-1788            | Не работает         |
| 6   | 15:00 | break              |                     |
| 7   | 15:15 | ID-1788            | Все еще не работает |
| 8   | 16:00 | break              |                     |
| 9   | 16:20 | ID-1788            | Завелось            |
| 10  | 20:00 | end                |                     |

# ID-1788
* Задал вопрос Админам

# Быстрое
* Задать вопрос Владимиру в телеге на счет системника
  • программа должна выдать такой отчет
break -> PT1H47M
утреннее совещание -> PT30M
ID-1788 -> PT5H55M
inbox -> PT1H43M
всего -> PT9H55M
без перерывов -> PT8H8M
  • Где
    • правая сторона (break, inbox, ...) это названия задач
    • левая сторона это затраченное время. PT это формат java.time.Duration
  • отчет это группировка по столбцу tasks с суммированием продолжительности времени работы над задачей

Требования

  • нужно предоставить программу в виде консольной утилиты(толстый jar file) под названием showStatistic.jar

  • программа showStatistic.jar должна иметь следующий интерфейс

    1. запуск без параметров
    C:\some\path> java -jar showStatictic.jar  
    Hello. You run me without arguments. I don't know what to do.
    Please run me with -h argument.
    Buy!
    

    Программа завершается 2) запуск программы c аргументом -h

    C:\some\path> java showStatictic.jar
    Hello. I am programm to calculate report statictic.
    This is my help menu:
    1) run me as:
       C:\path> java showStatictic.jar -path "C:\user\documents\path\report\01.05.2022.md"
    to process report and see statictic
    
    Buy!
    

    Программа завершается 3) запуск программы с аргументов -path. Если по пути есть документ 01.05.2022.md

    C:\path> java showStatictic.jar -path "C:\user\documents\path\report\01.05.2022.md"
    Hello. I perform calculation of report for path: "C:\user\documents\path\report\01.05.2022.md" 
    
    Report:
    ==================
    break -> PT1H47M
    утреннее совещание -> PT30M
    ID-1788 -> PT5H55M
    inbox -> PT1H43M
    всего -> PT9H55M
    без перерывов -> PT8H8M
    ==================
    
    Buy!
    

    Программа завершается 4) запуск программы с аргументов -path. Если по пути нет файла 01.05.2022.md

    C:\path> java showStatictic.jar -path "C:\user\documents\path\report\01.05.2022.md"
    Hello. There is no such file: "C:\user\documents\path\report\01.05.2022.md" 
    
    Buy!
    

About

Parses table from .md file and generates report (Finished)

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages