Initial commit

This commit is contained in:
zervo 2025-03-13 07:54:44 +01:00
commit b95ee4f1f1
3 changed files with 57 additions and 0 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
.vscode
stopwatch

3
go.mod Normal file
View file

@ -0,0 +1,3 @@
module stopwatch
go 1.24.1

52
main.go Normal file
View file

@ -0,0 +1,52 @@
package main
import (
"fmt"
"time"
)
func main() {
var start time.Time
var elapsed time.Duration
var running bool
go func() {
for {
time.Sleep(1 * time.Second)
if running {
elapsed = time.Since(start)
fmt.Printf("\rElapsed Time: %02d:%02d:%02d", int(elapsed.Hours()), int(elapsed.Minutes())%60, int(elapsed.Seconds())%60)
}
}
}()
for {
fmt.Println("> s: Start, p: Pause, r: Reset, q: Quit")
var input string
fmt.Scanln(&input)
switch input {
case "s":
if !running {
start = time.Now().Add(-elapsed)
running = true
fmt.Println("Stopwatch started.")
}
case "p":
if running {
running = false
fmt.Printf("\nPaused at: %02d:%02d:%02d\n", int(elapsed.Hours()), int(elapsed.Minutes())%60, int(elapsed.Seconds())%60)
}
case "r":
start = time.Time{}
elapsed = 0
running = false
fmt.Println("\nStopwatch reset.")
case "q":
fmt.Println("\nExiting")
return
default:
fmt.Println("\nInvalid input, please try again.")
}
}
}