diff options
author | Teddy Wing | 2017-06-03 17:25:26 +0200 |
---|---|---|
committer | Teddy Wing | 2017-06-03 17:25:26 +0200 |
commit | e8bee60ed342ab4df93bf2fb582706ad7fd42546 (patch) | |
tree | b0115143781eb18d71b2496c04e0bfb1b28432b6 /timetask/http.go | |
parent | 341e22ef6b8290bba8ba43ecddb9f1175b3cafb9 (diff) | |
download | timetasker-e8bee60ed342ab4df93bf2fb582706ad7fd42546.tar.bz2 |
Change `TimeEntry.Time` to a `float64`
I had forgotten that time spent can be a decimal. Make this field a
float and change related code accordingly:
* --time flag
* `NewTimeEntry()` `time` argument
* `buildSubmissionParams()` can't use `strconv.Itoa` as that's an
integer function. Instead we use `FormatFloat`. Truncate time parsing
to two decimal places because to me that seems like enough. Who's
going to say they spent `0.324` hours on something? Also, in order to
be able to properly submit values to TimeTask (at least on the edition
I use), the times must be written in European/French format, with
commas (`,`) as decimal separators. Do a string replace to get this,
as the float formatter will give us a period (`.`) separator.
Diffstat (limited to 'timetask/http.go')
-rw-r--r-- | timetask/http.go | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/timetask/http.go b/timetask/http.go index 6e73276..f236665 100644 --- a/timetask/http.go +++ b/timetask/http.go @@ -5,6 +5,7 @@ import ( "net/http/cookiejar" "net/url" "strconv" + "strings" "golang.org/x/net/publicsuffix" ) @@ -97,9 +98,11 @@ func buildSubmissionParams(time_entry TimeEntry) url.Values { time_entry.Date.Format("02/01/06"), // day/month/year ) + time_str := strconv.FormatFloat(time_entry.Time, 'f', 2, 64) + time_european_format := strings.Replace(time_str, ".", ",", 0) v.Set( "f_time0", - strconv.Itoa(time_entry.Time), + time_european_format, ) var billable string |