title: Why I am getting wrong answers in Date function in golang
body: <p>In the following code,</p>
  
  <ul>
  <li>t1 is time on 62 days after the date 1970/1/1 (yy/mm/dd)</li>
  <li>t2 is time on 63 days after the date 1970/1/1 (yy/mm/dd)</li>
  </ul>
  
  <hr>
  
  <pre><code>package main
  
  import (
      "fmt"
      "time"
  )
  
  func main() {
  
      t1 := time.Date(0, 0, 62, 0, 0, 0, 0, time.UTC).AddDate(1970, 1, 1)
      t2 := time.Date(0, 0, 63, 0, 0, 0, 0, time.UTC).AddDate(1970, 1, 1)
  
      fmt.Println("Time1:  ", t1)
      fmt.Println("Time2:  ", t2)
  }
  </code></pre>
  
  <p>If t1 is:</p>
  
  <pre><code>Time1: 1970-03-04 00:00:00 +0000 UTC
  </code></pre>
  
  <p>I expect t2 to be:</p>
  
  <pre><code>Time2: 1970-03-05 00:00:00 +0000 UTC
  </code></pre>
  
  <p>But the output is:</p>
  
  <pre><code>Time2: 1970-03-02 00:00:00 +0000 UTC
  </code></pre>
  
  <p>What is the reason for this?</p>