Created
May 3, 2021 09:48
-
-
Save eienf/1dbc802ce8f5e214237657e056c8ddc8 to your computer and use it in GitHub Desktop.
Revisions
-
eienf created this gist
May 3, 2021 .There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters. Learn more about bidirectional Unicode charactersOriginal file line number Diff line number Diff line change @@ -0,0 +1,71 @@ import Foundation // // print gregorian calendar year with japanease calendar year // siwftc -o jyear jyear.swift // ./jyear startYearInGregorianCalendar // (-length 10) // ./jyear startYearInGregorianCalendar -length years // ./jyear startYearInGregorianCalendar stopYearInGregorianCalendar // let japanease = Calendar(identifier: .japanese) let gregorian = Calendar(identifier: .gregorian) let locale = Locale(identifier: "ja") let format = DateFormatter() format.calendar = japanease format.dateFormat = "Gy年" format.locale = locale func print(year:Int) { let comp = DateComponents(calendar: gregorian, era: 1, year: year, month: 1, day: 1) guard let date = comp.date else { return } let string = format.string(from: date) let gYear = gregorian.component(.year, from: date) print("\(gYear)年\t"+string) } func printYears(startYear:Int, stopYear:Int) { for year in startYear...stopYear { print(year:year) } } var startYear = 2001 var length = 10 let argv = ProcessInfo.processInfo.arguments // print("count = \(argv.count)") if argv.count > 1 { let value = Int(argv[1])! if value < 2100 && value > 645 { startYear = value } } if argv.count > 2 { if argv[2] == "-length" { if argv.count > 3 { if let value = Int(argv[3]) { if value > 0 { length = value } } } } else { let value = Int(argv[2])! if value < 2100 && value > 645 { let stopYear = value if stopYear > startYear { length = stopYear - startYear } } } } printYears(startYear: startYear, stopYear: startYear+length)