2020年4月1日水曜日

開発環境

入門Goプログラミング (Nathan Youngman(著)、Roger Peppé(著)、吉川 邦夫(監修, 翻訳)、翔泳社)のUNIT 1(命令型プログラミング)、LESSON 4(変数のスコープ)の練習問題の解答を求めてみる。

コード

package main

import (
 "fmt"
 "math/rand"
 "time"
)

var era = "AD"

func main() {
 rand.Seed(time.Now().UnixNano())

 for i := 0; i < 10; i++ {
  year := rand.Intn(3000) + 1
  month := rand.Intn(12) + 1
  daysInMonth := 31
  switch month {
  case 2:
   if year%400 == 0 || (year%4 == 0 && year%100 != 0) {
    daysInMonth = 29
   } else {
    daysInMonth = 28
   }
  case 4, 6, 9, 11:
   daysInMonth = 30
  default:
   daysInMonth = 31
  }
  day := rand.Intn(daysInMonth) + 1
  fmt.Println(era, year, month, day, daysInMonth)
 }
}

入出力結果(Zsh、PowerShell、Terminal)

% go run ./sample1.go
AD 2172 10 17 31
AD 2914 1 3 31
AD 1199 10 4 31
AD 1248 10 22 31
AD 2775 2 14 28
AD 1338 10 9 31
AD 2990 3 2 31
AD 1700 11 26 30
AD 1573 4 1 30
AD 1938 2 25 28
% go run ./sample1.go
AD 2638 10 3 31
AD 1219 10 11 31
AD 2684 7 13 31
AD 1032 9 12 30
AD 2259 4 9 30
AD 2358 2 28 28
AD 2124 5 27 31
AD 1834 10 26 31
AD 2938 4 16 30
AD 1861 3 28 31
% go run ./sample1.go
AD 268 7 1 31
AD 142 12 16 31
AD 915 11 11 30
AD 1045 10 27 31
AD 1912 10 17 31
AD 390 12 15 31
AD 104 3 19 31
AD 150 9 24 30
AD 355 1 14 31
AD 2734 1 5 31
% go run ./sample1.go
AD 1563 1 15 31
AD 877 5 30 31
AD 2057 1 10 31
AD 2959 5 18 31
AD 520 7 22 31
AD 1210 7 23 31
AD 2539 5 6 31
AD 1642 12 14 31
AD 730 1 29 31
AD 1675 11 7 30
% go run ./sample1.go
AD 730 3 31 31
AD 295 2 7 28
AD 2680 3 9 31
AD 2570 4 5 30
AD 2347 8 2 31
AD 1486 2 21 28
AD 1672 5 30 31
AD 1161 9 9 30
AD 706 8 29 31
AD 710 9 8 30
% go run ./sample1.go
AD 1183 4 10 30
AD 1561 3 24 31
AD 2774 5 28 31
AD 2432 4 5 30
AD 2119 9 6 30
AD 1443 2 2 28
AD 1516 4 20 30
AD 1036 7 21 31
AD 754 11 13 30
AD 2767 8 4 31
% go run ./sample1.go
AD 2861 7 21 31
AD 578 9 25 30
AD 1454 5 29 31
AD 2654 3 25 31
AD 286 7 7 31
AD 614 8 7 31
AD 763 11 21 30
AD 1681 1 18 31
AD 2278 3 25 31
AD 2936 9 13 30
% go run ./sample1.go
AD 1674 4 23 30
AD 2105 3 30 31
AD 2246 6 6 30
AD 2379 3 29 31
AD 2213 4 4 30
AD 2639 9 13 30
AD 71 10 25 31
AD 1924 5 19 31
AD 1953 8 15 31
AD 931 4 4 30
% go run ./sample1.go
AD 334 8 19 31
AD 2152 5 11 31
AD 1876 9 13 30
AD 641 1 8 31
AD 1152 8 9 31
AD 626 11 16 30
AD 2671 2 17 28
AD 1478 6 14 30
AD 1660 8 25 31
AD 550 9 4 30
% go run ./sample1.go
AD 1821 9 7 30
AD 405 9 12 30
AD 2253 8 4 31
AD 1538 1 21 31
AD 2109 8 28 31
AD 2507 1 11 31
AD 2292 3 26 31
AD 92 12 23 31
AD 1126 2 20 28
AD 473 11 23 30
% go run ./sample1.go
AD 2331 5 7 31
AD 627 4 2 30
AD 2148 1 16 31
AD 41 1 27 31
AD 2692 10 12 31
AD 2101 8 5 31
AD 540 2 29 29
AD 585 9 11 30
AD 504 2 24 29
AD 1707 8 20 31
% 

0 コメント:

コメントを投稿