Add miniApp for calculating duration of tasks in obsidian
This commit is contained in:
commit
c565207560
3 changed files with 73 additions and 0 deletions
7
nvim_parsers/taduca/example.txt
Normal file
7
nvim_parsers/taduca/example.txt
Normal file
|
@ -0,0 +1,7 @@
|
|||
20.12.2024 08:30 || Продолжил работу с 2826
|
||||
20.12.2024 11:00 || Начали встречу с Дашей по поводу хз чего
|
||||
20.12.2024 11:27 || Закончили всетречу
|
||||
20.12.2024 11:27 || Смотрю что сделал Владимир (задача про закрытие доступов к API фаерволов)
|
||||
20.12.2024 11:39 || Посмотрел, дополнил и переместил в спринт на оценку эту задачу
|
||||
20.12.2024 12:52 || Закончили встречу с Лешей
|
||||
20.12.2024 14:20 || Вернулся к работе над задачей 2826закончил на сегодня с 2826
|
3
nvim_parsers/taduca/go.mod
Normal file
3
nvim_parsers/taduca/go.mod
Normal file
|
@ -0,0 +1,3 @@
|
|||
module parser
|
||||
|
||||
go 1.23.3
|
63
nvim_parsers/taduca/mini_parse.go
Normal file
63
nvim_parsers/taduca/mini_parse.go
Normal file
|
@ -0,0 +1,63 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
"fmt"
|
||||
"os"
|
||||
"regexp"
|
||||
"time"
|
||||
)
|
||||
|
||||
func ParseData(pointer *[]string) {
|
||||
re := regexp.MustCompile(`\d+:\d+`)
|
||||
timeStringLayout := "15:04"
|
||||
dataLen := len(*pointer)
|
||||
for i := 0; i < dataLen; i++ {
|
||||
// address := &(*pointer)[i]
|
||||
// fmt.Printf("Element %d: Value = %s, Address = %p\n", i, *address, address)
|
||||
if i == 0 {
|
||||
continue
|
||||
}
|
||||
|
||||
// fmt.Println((*pointer)[i])
|
||||
startTime := re.Find([]byte((*pointer)[i-1]))
|
||||
startTimeString := string(startTime)
|
||||
startTimeParsed, err := time.Parse(timeStringLayout, startTimeString)
|
||||
if err != nil {
|
||||
fmt.Println("Error parsing date:", err)
|
||||
}
|
||||
endTime := re.Find([]byte((*pointer)[i]))
|
||||
endTimeString := string(endTime)
|
||||
// fmt.Printf("%s - %s\n", startTime, endTime)
|
||||
endTimeParsed, err := time.Parse(timeStringLayout, endTimeString)
|
||||
if err != nil {
|
||||
fmt.Println("Error parsing date:", err)
|
||||
}
|
||||
duration := endTimeParsed.Sub(startTimeParsed)
|
||||
fmt.Printf("%s\t%s\n", duration, (*pointer)[i])
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
// Create a new scanner to read from standard input
|
||||
scanner := bufio.NewScanner(os.Stdin)
|
||||
|
||||
// Create var for string array with received data
|
||||
var dataToParse []string
|
||||
|
||||
// Read each line from stdin
|
||||
for scanner.Scan() {
|
||||
line := scanner.Text()
|
||||
// Process the line (for example, print it)
|
||||
dataToParse = append(dataToParse, line)
|
||||
}
|
||||
|
||||
// Check for errors during scanning
|
||||
if err := scanner.Err(); err != nil {
|
||||
fmt.Fprintln(os.Stderr, "Error reading from stdin:", err)
|
||||
}
|
||||
// for i := 0; i < len(dataToParse); i++ {
|
||||
// fmt.Println(dataToParse[i])
|
||||
// }
|
||||
ParseData(&dataToParse)
|
||||
}
|
Loading…
Reference in a new issue