Miki Tebeka avatar Miki Tebeka committed 0505b5b

%j

Comments (0)

Files changed (2)

 	%d - Day of the month as a decimal number [01,31]
 	%H - Hour (24-hour clock) as a decimal number [00,23]
 	%I - Hour (12-hour clock) as a decimal number [01,12]
+	%j - Day of year	
 	%m - Month as a decimal number [01,12]
 	%M - Minute as a decimal number [00,59]
 	%p - Locale’s equivalent of either AM or PM
 
 
 Missing directives:
-	%j - Day of year	
 	%U - Week number of the year
 	%w - Weekday as a decimal number
 	%W - Week number of the year
 	}
 
 	format, ok := conv[match]
-	if !ok {
-		panic(fmt.Errorf("unknown directive - %s", match))
+	if ok {
+		return t.Format(format)
 	}
-	return t.Format(format)
+
+	switch match {
+	case "%j":
+		start := time.Date(t.Year(), 1, 1, 0, 0, 0, 0, time.UTC)
+		day := int(t.Sub(start).Hours()/24) + 1
+		return fmt.Sprintf("%03d", day)
+	}
+
+	panic(fmt.Errorf("unknown directive - %s", match))
+	return "" // Make compiler happy
 }
 
 // Format return string with % directives expanded.
 		t.Fatalf("managed to expand %g")
 	}
 }
+
+func TestDayOfYear(t *testing.T) {
+	s , err := Format("%j", testTime)
+	if err != nil {
+		t.Fatalf("error expanding %j", err)
+	}
+
+	if s != "314" {
+		t.Fatalf("day of year != 314 (got %s)", s)
+	}
+}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.