🚧 Add utils.HourMinSecToSeconds func
This commit is contained in:
		
					parent
					
						
							
								5472d7376a
							
						
					
				
			
			
				commit
				
					
						a706d16c5a
					
				
			
		
					 2 changed files with 44 additions and 0 deletions
				
			
		|  | @ -3,6 +3,8 @@ package utils | ||||||
| import ( | import ( | ||||||
| 	"fmt" | 	"fmt" | ||||||
| 	p "path" | 	p "path" | ||||||
|  | 	"strings" | ||||||
|  | 	t "time" | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| func GetShortPath(path string) string { | func GetShortPath(path string) string { | ||||||
|  | @ -11,3 +13,15 @@ func GetShortPath(path string) string { | ||||||
| 	dir = p.Base(dir) | 	dir = p.Base(dir) | ||||||
| 	return fmt.Sprintf("%s/%s", dir, base) | 	return fmt.Sprintf("%s/%s", dir, base) | ||||||
| } | } | ||||||
|  | 
 | ||||||
|  | func HourMinSecToSeconds(time string) float64 { | ||||||
|  | 	parts := strings.Split(time, ":") | ||||||
|  | 	units := []string{"h", "m", "s"} | ||||||
|  | 	units = units[len(units)-len(parts):] | ||||||
|  | 	f := "" | ||||||
|  | 	for idx, part := range parts { | ||||||
|  | 		f = f + part + units[idx] | ||||||
|  | 	} | ||||||
|  | 	dur, _ := t.ParseDuration(f) | ||||||
|  | 	return dur.Seconds() | ||||||
|  | } | ||||||
|  |  | ||||||
							
								
								
									
										30
									
								
								utils/utils_hms_test.go
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								utils/utils_hms_test.go
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,30 @@ | ||||||
|  | package utils | ||||||
|  | 
 | ||||||
|  | import "testing" | ||||||
|  | 
 | ||||||
|  | func hmsTest(t *testing.T, time string, expected float64) { | ||||||
|  | 	found := HourMinSecToSeconds(time) | ||||||
|  | 	if found != expected { | ||||||
|  | 		t.Fatalf(`HourMinSecToSeconds("%s") = %v, want %v`, time, found, expected) | ||||||
|  | 	} | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func TestJustSeconds(t *testing.T) { | ||||||
|  | 	hmsTest(t, "4.23", 4.23) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func TestMinuteSeconds(t *testing.T) { | ||||||
|  | 	hmsTest(t, "2:3.45", 123.45) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func TestHourMinuteSeconds(t *testing.T) { | ||||||
|  | 	hmsTest(t, "3:5:12.43", 11112.43) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func TestLeadingZeros(t *testing.T) { | ||||||
|  | 	hmsTest(t, "03:05:02.43", 11102.43) | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | func TestWholeSecond(t *testing.T) { | ||||||
|  | 	hmsTest(t, "4:2", 242) | ||||||
|  | } | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue