From 8a9755247153e948920893aa1710932d6c2b6bba Mon Sep 17 00:00:00 2001 From: Fumiya Sakai Date: Tue, 23 May 2017 02:01:40 +0900 Subject: [PATCH 1/6] Add Testcase of 2018~2020 --- .../CalculateCalendarLogicTests.swift | 176 +++++++++++++++++- .../UserInterfaceState.xcuserstate | Bin 30858 -> 30030 bytes 2 files changed, 174 insertions(+), 2 deletions(-) diff --git a/CalculateCalendarLogicTests/CalculateCalendarLogicTests.swift b/CalculateCalendarLogicTests/CalculateCalendarLogicTests.swift index 18e9d18..4dd86ed 100644 --- a/CalculateCalendarLogicTests/CalculateCalendarLogicTests.swift +++ b/CalculateCalendarLogicTests/CalculateCalendarLogicTests.swift @@ -139,8 +139,180 @@ class CalculateCalendarLogicTests: XCTestCase { // 勤労感謝の日: 2017年11月23日(木曜日) (2017, 11, 23, true), - //天皇誕生日: 2016年12月23日(土曜日) - (2017, 12, 23, true) + //天皇誕生日: 2017年12月23日(土曜日) + (2017, 12, 23, true), + + // 2018年 + // 元日: 2018年1月1日(月曜日) + (2018, 1, 1, true), + + // 成人の日: 2018年1月8日(月曜日) + (2018, 1, 8, true), + + // 建国記念の日: 2018年2月11日(日曜日) + (2018, 2, 11, true), + + // 振替休日: 2018年2月12日(月曜日) + (2018, 2, 12, true), + + // 春分の日: 2018年3月21日(水曜日) + (2018, 3, 21, true), + + // 昭和の日: 2018年4月29日(日曜日) + (2018, 4, 29, true), + + // 振替休日: 2018年4月30日(月曜日) + (2018, 4, 30, true), + + // 憲法記念日: 2018年5月3日(木曜日) + (2018, 5, 3, true), + + // みどりの日: 2018年5月4日(木曜日) + (2018, 5, 4, true), + + // こどもの日: 2018年5月5日(金曜日) + (2018, 5, 5, true), + + // 海の日: 2018年7月16日(月曜日) + (2018, 7, 16, true), + + // 山の日: 2018年8月11日(土曜日) + (2018, 8, 11, true), + + // 敬老の日: 2018年9月17日(月曜日) + (2018, 9, 17, true), + + // 秋分の日: 2018年9月23日(日曜日) + (2018, 9, 23, true), + + // 振替休日: 2018年9月24日(月曜日) + (2018, 9, 24, true), + + // 体育の日: 2018年10月8日(月曜日) + (2018, 10, 8, true), + + // 文化の日: 2018年11月3日(土曜日) + (2018, 11, 3, true), + + // 勤労感謝の日: 2018年11月23日(金曜日) + (2018, 11, 23, true), + + // 天皇誕生日: 2018年12月23日(日曜日) + (2018, 12, 23, true), + + // 振替休日: 2018年12月24日(月曜日) + (2018, 12, 24, true), + + // 2019年 + // 元日: 2019年1月1日(火曜日) + (2019, 1, 1, true), + + // 成人の日: 2019年1月14日(月曜日) + (2019, 1, 14, true), + + // 建国記念の日: 2019年2月11日(月曜日) + (2019, 2, 11, true), + + // 春分の日: 2019年3月21日(木曜日) + (2019, 3, 21, true), + + // 昭和の日: 2019年4月29日(月曜日) + (2019, 4, 29, true), + + // 憲法記念日: 2019年5月3日(金曜日) + (2019, 5, 3, true), + + // みどりの日: 2019年5月4日(土曜日) + (2019, 5, 4, true), + + // こどもの日: 2019年5月5日(日曜日) + (2019, 5, 5, true), + + // 振替休日: 2019年5月6日(月曜日) + (2019, 5, 6, true), + + // 海の日: 2019年7月15日(月曜日) + (2019, 7, 15, true), + + // 山の日: 2019年8月11日(日曜日) + (2019, 8, 11, true), + + // 山の日: 2019年8月12日(月曜日) + (2019, 8, 12, true), + + // 敬老の日: 2019年9月16日(月曜日) + (2019, 9, 16, true), + + // 秋分の日: 2019年9月23日(月曜日) + (2019, 9, 23, true), + + // 体育の日: 2019年10月14日(月曜日) + (2019, 10, 14, true), + + // 文化の日: 2019年11月3日(日曜日) + (2019, 11, 3, true), + + // 文化の日: 2019年11月4日(月曜日) + (2019, 11, 4, true), + + // 勤労感謝の日: 2019年11月23日(土曜日) + (2019, 11, 23, true), + + // 天皇誕生日: 2019年12月23日(月曜日) + (2019, 12, 23, true), + + // 2020年 + // 元日: 2020年1月1日(水曜日) + (2020, 1, 1, true), + + // 成人の日: 2020年1月13日(月曜日) + (2020, 1, 13, true), + + // 建国記念の日: 2020年2月11日(火曜日) + (2020, 2, 11, true), + + // 春分の日: 2020年3月20日(金曜日) + (2020, 3, 20, true), + + // 昭和の日: 2020年4月29日(水曜日) + (2020, 4, 29, true), + + // 憲法記念日: 2020年5月3日(日曜日) + (2020, 5, 3, true), + + // みどりの日: 2020年5月4日(月曜日) + (2020, 5, 4, true), + + // こどもの日: 2020年5月5日(火曜日) + (2020, 5, 5, true), + + // 振替休日: 2020年5月6日(水曜日) + (2020, 5, 6, true), + + // 海の日: 2020年7月20日(月曜日) + (2020, 7, 20, true), + + // 山の日: 2020年8月11日(火曜日) + (2020, 8, 11, true), + + // 敬老の日: 2020年9月21日(月曜日) + (2020, 9, 21, true), + + // 秋分の日: 2020年9月22日(木曜日) + (2020, 9, 22, true), + + // 体育の日: 2020年10月12日(月曜日) + (2020, 10, 12, true), + + // 文化の日: 2020年11月3日(火曜日) + (2020, 11, 3, true), + + // 勤労感謝の日: 2020年11月23日(月曜日) + (2020, 11, 23, true), + + // 天皇誕生日: 2020年12月23日(水曜日) + (2020, 12, 23, true), + ] testCases.forEach { year, month, day, expected in let result = test.judgeJapaneseHoliday(year: year, month: month, day: day) diff --git a/handMadeCalendarAdvance.xcodeproj/project.xcworkspace/xcuserdata/sakaifumiya.xcuserdatad/UserInterfaceState.xcuserstate b/handMadeCalendarAdvance.xcodeproj/project.xcworkspace/xcuserdata/sakaifumiya.xcuserdatad/UserInterfaceState.xcuserstate index fb95967611d95a4684134f40d7fd4b99ebbcbb9f..a2282e2dba0c0b06faa50e3cc30a6200bfa3359d 100644 GIT binary patch delta 15684 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 delta 16204 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 b%IfIqp4I)@+o=$?{}$P||L**^I{yCv|Bc)u From bf0376b79a8d16716c239c799107b2ffa88c9d53 Mon Sep 17 00:00:00 2001 From: Fumiya Sakai Date: Tue, 23 May 2017 14:20:11 +0900 Subject: [PATCH 2/6] Add Testcase of 2021~2022 --- .../CalculateCalendarLogicTests.swift | 49 ++++++++++++++++++ .../UserInterfaceState.xcuserstate | Bin 30030 -> 30033 bytes 2 files changed, 49 insertions(+) diff --git a/CalculateCalendarLogicTests/CalculateCalendarLogicTests.swift b/CalculateCalendarLogicTests/CalculateCalendarLogicTests.swift index 4dd86ed..3813342 100644 --- a/CalculateCalendarLogicTests/CalculateCalendarLogicTests.swift +++ b/CalculateCalendarLogicTests/CalculateCalendarLogicTests.swift @@ -312,7 +312,56 @@ class CalculateCalendarLogicTests: XCTestCase { // 天皇誕生日: 2020年12月23日(水曜日) (2020, 12, 23, true), + + // 2022年 + // 元日: 2022年1月1日(土曜日) + (2022, 1, 1, true), + + // 成人の日: 2022年1月10日(月曜日) + (2022, 1, 10, true), + + // 建国記念の日: 2022年2月11日(木曜日) + (2022, 2, 11, true), + + // 春分の日: 2022年3月21日(月曜日) + (2022, 3, 21, true), + + // 昭和の日: 2022年4月29日(金曜日) + (2022, 4, 29, true), + + // 憲法記念日: 2022年5月3日(火曜日) + (2022, 5, 3, true), + + // みどりの日: 2022年5月4日(水曜日) + (2022, 5, 4, true), + + // こどもの日: 2022年5月5日(木曜日) + (2022, 5, 5, true), + // 海の日: 2022年7月18日(月曜日) + (2022, 7, 18, true), + + // 山の日: 2022年8月11日(水曜日) + (2022, 8, 11, true), + + // 敬老の日: 2022年9月19日(月曜日) + (2022, 9, 19, true), + + // 秋分の日: 2022年9月23日(金曜日) + (2022, 9, 23, true), + + // 体育の日: 2022年10月10日(月曜日) + (2022, 10, 10, true), + + // 文化の日: 2022年11月3日(木曜日) + (2022, 11, 3, true), + + // 勤労感謝の日: 2022年11月23日(水曜日) + (2022, 11, 23, true), + + // 天皇誕生日: 2021年12月23日(金曜日) + (2022, 12, 23, true), + ] testCases.forEach { year, month, day, expected in let result = test.judgeJapaneseHoliday(year: year, month: month, day: day) diff --git a/handMadeCalendarAdvance.xcodeproj/project.xcworkspace/xcuserdata/sakaifumiya.xcuserdatad/UserInterfaceState.xcuserstate b/handMadeCalendarAdvance.xcodeproj/project.xcworkspace/xcuserdata/sakaifumiya.xcuserdatad/UserInterfaceState.xcuserstate index a2282e2dba0c0b06faa50e3cc30a6200bfa3359d..0f652169acee8ff5c1dbfb32e1c9262c590c06e0 100644 GIT binary patch delta 4205 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 Date: Thu, 4 Jan 2018 21:22:37 +0900 Subject: [PATCH 3/6] Modify sample code. --- .../project.pbxproj | 8 +++--- .../UserInterfaceState.xcuserstate | Bin 55863 -> 50297 bytes .../Base.lproj/Main.storyboard | 27 +++++++++--------- ...ft => MonthlyCalendarViewController.swift} | 10 +++---- 4 files changed, 22 insertions(+), 23 deletions(-) rename handMadeCalendarAdvance/{ViewController.swift => MonthlyCalendarViewController.swift} (97%) diff --git a/handMadeCalendarAdvance.xcodeproj/project.pbxproj b/handMadeCalendarAdvance.xcodeproj/project.pbxproj index fb97fc9..117d4fe 100644 --- a/handMadeCalendarAdvance.xcodeproj/project.pbxproj +++ b/handMadeCalendarAdvance.xcodeproj/project.pbxproj @@ -12,7 +12,7 @@ 31889D161E29F3BC00DFD4CB /* CalculateCalendarLogicTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E517AF5A1CE0F63C006847A0 /* CalculateCalendarLogicTests.swift */; }; DE0166BC1CDE5892002BB133 /* CalendarCell.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE0166BB1CDE5892002BB133 /* CalendarCell.swift */; }; DE7396FA1CCB4EC100A9A222 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE7396F91CCB4EC100A9A222 /* AppDelegate.swift */; }; - DE7396FC1CCB4EC100A9A222 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE7396FB1CCB4EC100A9A222 /* ViewController.swift */; }; + DE7396FC1CCB4EC100A9A222 /* MonthlyCalendarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE7396FB1CCB4EC100A9A222 /* MonthlyCalendarViewController.swift */; }; DE7396FF1CCB4EC100A9A222 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DE7396FD1CCB4EC100A9A222 /* Main.storyboard */; }; DE7397011CCB4EC100A9A222 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DE7397001CCB4EC100A9A222 /* Assets.xcassets */; }; DE7397041CCB4EC100A9A222 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DE7397021CCB4EC100A9A222 /* LaunchScreen.storyboard */; }; @@ -91,7 +91,7 @@ DE0166BB1CDE5892002BB133 /* CalendarCell.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = CalendarCell.swift; sourceTree = ""; }; DE7396F61CCB4EC100A9A222 /* handMadeCalendarAdvance.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = handMadeCalendarAdvance.app; sourceTree = BUILT_PRODUCTS_DIR; }; DE7396F91CCB4EC100A9A222 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - DE7396FB1CCB4EC100A9A222 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + DE7396FB1CCB4EC100A9A222 /* MonthlyCalendarViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MonthlyCalendarViewController.swift; sourceTree = ""; }; DE7396FE1CCB4EC100A9A222 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; DE7397001CCB4EC100A9A222 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; DE7397031CCB4EC100A9A222 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; @@ -206,7 +206,7 @@ children = ( DE0166BA1CDE40DC002BB133 /* Component */, DE7396F91CCB4EC100A9A222 /* AppDelegate.swift */, - DE7396FB1CCB4EC100A9A222 /* ViewController.swift */, + DE7396FB1CCB4EC100A9A222 /* MonthlyCalendarViewController.swift */, DE7396FD1CCB4EC100A9A222 /* Main.storyboard */, DE7397001CCB4EC100A9A222 /* Assets.xcassets */, DE7397021CCB4EC100A9A222 /* LaunchScreen.storyboard */, @@ -545,7 +545,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - DE7396FC1CCB4EC100A9A222 /* ViewController.swift in Sources */, + DE7396FC1CCB4EC100A9A222 /* MonthlyCalendarViewController.swift in Sources */, DE7396FA1CCB4EC100A9A222 /* AppDelegate.swift in Sources */, DE0166BC1CDE5892002BB133 /* CalendarCell.swift in Sources */, ); diff --git a/handMadeCalendarAdvance.xcodeproj/project.xcworkspace/xcuserdata/sakaifumiya.xcuserdatad/UserInterfaceState.xcuserstate b/handMadeCalendarAdvance.xcodeproj/project.xcworkspace/xcuserdata/sakaifumiya.xcuserdatad/UserInterfaceState.xcuserstate index e698e4aecbd61fd032495a6e0c0176de753e5578..397f99d367493345596a98e57226908372b75b9b 100644 GIT binary patch delta 24790 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 diff --git a/handMadeCalendarAdvance/Base.lproj/Main.storyboard b/handMadeCalendarAdvance/Base.lproj/Main.storyboard index 1f606b7..f197ab6 100644 --- a/handMadeCalendarAdvance/Base.lproj/Main.storyboard +++ b/handMadeCalendarAdvance/Base.lproj/Main.storyboard @@ -1,19 +1,19 @@ - + - + - + - + @@ -22,13 +22,12 @@ - - + + - - + + diff --git a/handMadeCalendarAdvance/ViewController.swift b/handMadeCalendarAdvance/MonthlyCalendarViewController.swift similarity index 97% rename from handMadeCalendarAdvance/ViewController.swift rename to handMadeCalendarAdvance/MonthlyCalendarViewController.swift index ec5646a..473fae9 100644 --- a/handMadeCalendarAdvance/ViewController.swift +++ b/handMadeCalendarAdvance/MonthlyCalendarViewController.swift @@ -1,5 +1,5 @@ // -// ViewController.swift +// MonthlyCalendarViewController.swift // handMadeCalendarAdvance // // Created by 酒井文也 on 2016/04/23. @@ -83,7 +83,7 @@ struct CurrentDateSetting { } } -class ViewController: UIViewController { +class MonthlyCalendarViewController: UIViewController { //ラベルに表示するための年と月の変数 var targetYear: Int! = CurrentDateSetting.getCurrentYearAndMonth().targetYear @@ -191,7 +191,7 @@ class ViewController: UIViewController { // MARK: - UICollectionViewDataSource -extension ViewController: UICollectionViewDataSource { +extension MonthlyCalendarViewController: UICollectionViewDataSource { private enum indexType: Int { case weekdayTitleArea = 0 @@ -251,7 +251,7 @@ extension ViewController: UICollectionViewDataSource { // MARK: - UICollectionViewDelegate -extension ViewController: UICollectionViewDelegate { +extension MonthlyCalendarViewController: UICollectionViewDelegate { func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { //日付が入るセルならば処理をする if isCellUsing(indexPath.row) { @@ -263,7 +263,7 @@ extension ViewController: UICollectionViewDelegate { // MARK: - UIScrollViewDelegate -extension ViewController: UIScrollViewDelegate { +extension MonthlyCalendarViewController: UIScrollViewDelegate { //セルのサイズを設定 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAtIndexPath indexPath: IndexPath) -> CGSize { From 9bfa0f4988ae5c41df790e7e79c34ac6510f3a6a Mon Sep 17 00:00:00 2001 From: Fumiya Sakai Date: Thu, 4 Jan 2018 21:24:26 +0900 Subject: [PATCH 4/6] Bugfix about Spring/Autumn day & May/4th day logic. --- .../CalculateCalendarLogic.swift | 84 +++++++++++++++---- 1 file changed, 68 insertions(+), 16 deletions(-) diff --git a/CalculateCalendarLogic/CalculateCalendarLogic.swift b/CalculateCalendarLogic/CalculateCalendarLogic.swift index c554824..066d46b 100644 --- a/CalculateCalendarLogic/CalculateCalendarLogic.swift +++ b/CalculateCalendarLogic/CalculateCalendarLogic.swift @@ -87,17 +87,61 @@ public struct CalculateCalendarLogic { var constant: Double { switch self { - case .spring: return 20.69115 - case .autumn: return 23.09000 + case .spring: + return 20.69115 + case .autumn: + return 23.09000 } } - + /// 春分の日・秋分の日を計算する /// 参考:http://koyomi8.com/reki_doc/doc_0330.htm func calcDay(year: Int) -> Int { - let x1: Double = Double(year - 2000) * 0.242194 - let x2: Int = Int(Double(year - 2000) / 4) - return Int(constant + x1 - Double(x2)) + + // 1999年以降の計算式 + if year >= 2000 { + + let x1: Double = Double(year - 2000) * 0.242194 + let x2: Int = Int(Double(year - 2000) / 4) + return Int(constant + x1 - Double(x2)) + + // 1980年から1999年までの計算式 + } else if year >= 1980 && 1999 >= year { + + var newConstant: Double = 0.0000 + if constant == SpringAutumn.spring.constant { + newConstant = 20.8431 + } else if constant == SpringAutumn.autumn.constant { + newConstant = 23.2488 + } + + let x1: Double = Double(year - 1980) * 0.242194 + let x2: Int = Int(Double(year - 1980) / 4) + return Int(newConstant + x1 - Double(x2)) + + // 1980以前の計算式 + // (参考)http://www.asahi-net.or.jp/~ci5m-nmr/misc/equinox.html + } else { + + var targetDay: Int = 0 + if constant == SpringAutumn.spring.constant { + + if (year >= 1960 && year % 4 == 0) { + targetDay = 20 + } else { + targetDay = 21 + } + + } else if constant == SpringAutumn.autumn.constant { + + if ((year - 3) % 4 == 0) { + targetDay = 24 + } else { + targetDay = 23 + } + } + return targetDay + } } } @@ -191,6 +235,10 @@ public struct CalculateCalendarLogic { return true //5月4日: (1)1988年以前は振替休日、(2).1988年から2006年まで国民の休日、2007年以降はみどりの日 + case (year, 5, 4, _) where PublicHolidaysLawYear < year: + return true + + /* case (year, 5, 4, .mon) where year < 1988: return true @@ -204,6 +252,7 @@ public struct CalculateCalendarLogic { case (year, 5, 4, _) where year > 2006: return true + */ //5月5日: 1949年からこどもの日 case (year, 5, 5, _) where PublicHolidaysLawYear < year: @@ -298,8 +347,8 @@ public struct CalculateCalendarLogic { //12月24日: 振替休日 case (year, 12, 24, .mon) where year > 1989: return true - - //※昔の祝日はこちら + + //1999以前の祝日でその年限りに施行された祝日はこちら //4月10日: 1959年だけ皇太子明仁親王の結婚の儀 case (1959, 4, 10, _): return true @@ -307,15 +356,15 @@ public struct CalculateCalendarLogic { //2月24日: 1989年だけ昭和天皇の大喪の礼 case (1989, 2, 24, _): return true - - //11月12日: 1989年だけ昭和天皇の大喪の礼 - case (1989, 11, 12, _): + + //11月12日: 1990年だけ即位礼正殿の儀 + case (1990, 11, 12, _): return true - + //6月9日: 1993年だけ皇太子徳仁親王の結婚の儀 case (1993, 6, 9, _): return true - + //祝祭日ではない時 default: return false @@ -331,9 +380,12 @@ public struct CalculateCalendarLogic { */ private func getGoldenWeekAlterHoliday(year: Int, weekday: Weekday) -> Bool { switch weekday { - case .mon, .tue, - .wed where 2007 <= year: - return true + case .mon, .tue, .wed: + if 2007 <= year { + return true + } else { + return false + } default: return false } From 15a4bdf473c349b9e1fc08b8cc3ff34881d278c6 Mon Sep 17 00:00:00 2001 From: Fumiya Sakai Date: Thu, 4 Jan 2018 21:25:05 +0900 Subject: [PATCH 5/6] Add unit test cases. --- .../CalculateCalendarLogicTests.swift | 384 +++++++++++++++++- .../UserInterfaceState.xcuserstate | Bin 50297 -> 50139 bytes 2 files changed, 376 insertions(+), 8 deletions(-) diff --git a/CalculateCalendarLogicTests/CalculateCalendarLogicTests.swift b/CalculateCalendarLogicTests/CalculateCalendarLogicTests.swift index 8dcc968..3d264a2 100644 --- a/CalculateCalendarLogicTests/CalculateCalendarLogicTests.swift +++ b/CalculateCalendarLogicTests/CalculateCalendarLogicTests.swift @@ -44,7 +44,10 @@ class CalculateCalendarLogicTests: XCTestCase { // 建国記念の日: 2016年2月11日(木曜日) (2016, 2, 11, true), - + + // 春分の日の振替休日: 2016年3月20日(日曜日) + (2016, 3, 20, true), + // 春分の日の振替休日: 2016年3月21日(月曜日) (2016, 3, 21, true), @@ -100,7 +103,7 @@ class CalculateCalendarLogicTests: XCTestCase { // 春分の日: 2017年3月20日(月曜日) (2017, 3, 20, true), - // 昭和の日: 2016年4月29日(土曜日) + // 昭和の日: 2017年4月29日(土曜日) (2017, 4, 29, true), // 憲法記念日: 2017年5月3日(水曜日) @@ -139,8 +142,77 @@ class CalculateCalendarLogicTests: XCTestCase { // 勤労感謝の日: 2017年11月23日(木曜日) (2017, 11, 23, true), - //天皇誕生日: 2016年12月23日(土曜日) - (2017, 12, 23, true) + //天皇誕生日: 2017年12月23日(土曜日) + (2017, 12, 23, true), + + // 2018年 + // 元日: 2018年1月1日(月曜日) + (2018, 1, 1, true), + + // 成人の日: 2018年1月8日(月曜日) + (2018, 1, 8, true), + + // 建国記念の日: 2018年2月11日(日曜日) + (2018, 2, 11, true), + + // 建国記念の日の振替休日: 2018年2月12日(月曜日) + (2018, 2, 12, true), + + // 春分の日: 2018年3月21日(水曜日) + (2018, 3, 21, true), + + // 昭和の日: 2018年4月29日(日曜日) + (2018, 4, 29, true), + + // 昭和の日の振替休日: 2018年4月30日(月曜日) + (2018, 4, 30, true), + + // 憲法記念日: 2018年5月3日(木曜日) + (2018, 5, 3, true), + + // みどりの日: 2018年5月4日(金曜日) + (2018, 5, 4, true), + + // こどもの日: 2018年5月5日(土曜日) + (2018, 5, 5, true), + (2018, 5, 6, false), //5月6日は日曜日だけど祝日ではない + + // 海の日: 2018年7月16日(月曜日) + (2018, 7, 16, true), + + // 山の日: 2018年8月11日(土曜日) + (2018, 8, 11, true), + + // 敬老の日: 2018年9月17日(月曜日) + (2018, 9, 17, true), + + // おまけ: シルバーウィークはない + (2018, 9, 18, false), + (2018, 9, 19, false), + (2018, 9, 20, false), + (2018, 9, 21, false), + (2018, 9, 22, false), + + // 秋分の日: 2018年9月23日(日曜日) + (2018, 9, 23, true), + + // 秋分の日の振替休日: 2018年9月24日(月曜日) + (2018, 9, 24, true), + + // 体育の日: 2018年10月8日(月曜日) + (2018, 10, 8, true), + + // 文化の日: 2018年11月3日(土曜日) + (2018, 11, 3, true), + + // 勤労感謝の日: 2018年11月23日(金曜日) + (2018, 11, 23, true), + + //天皇誕生日: 2018年12月23日(日曜日) + (2018, 12, 23, true), + + //天皇誕生日: 2018年12月24日(月曜日) + (2018, 12, 24, true) ] testCases.forEach { (arg) in @@ -431,18 +503,30 @@ class CalculateCalendarLogicTests: XCTestCase { // 2027年 (2027, 3, 21, true), (2027, 9, 23, true), - + // 2028年 (2028, 3, 20, true), (2028, 9, 22, true), - + // 2029年 (2029, 3, 20, true), (2029, 9, 23, true), - + // 2030年 (2030, 3, 20, true), - (2030, 9, 23, true) + (2030, 9, 23, true), + + // 2031年 + (2031, 3, 21, true), + (2031, 9, 23, true), + + // 2032年 + (2032, 3, 20, true), + (2032, 9, 22, true), + + // 2033年 + (2033, 3, 20, true), + (2033, 9, 23, true) ] testCases.forEach { (arg) in @@ -537,5 +621,289 @@ class CalculateCalendarLogicTests: XCTestCase { XCTAssertEqual(result, expectedDay, message) } } + + func testPastSpecificHoliday() { + let test = CalculateCalendarLogic() + + let testCases: [(Int,Int,Int,Bool)] = [ + // 4月10日: 1959年だけ皇太子明仁親王の結婚の儀 + (1958, 4, 10, false), + (1959, 4, 10, true), + (1960, 4, 10, false), + + // 2月24日: 1989年だけ昭和天皇の大喪の礼 + (1988, 2, 24, false), + (1989, 2, 24, true), + (1990, 2, 24, false), + + // 11月12日: 1990年だけ即位礼正殿の儀 + (1989, 11, 12, false), + (1990, 11, 12, true), + (1991, 11, 12, false), + + // 6月9日: 1993年だけ皇太子徳仁親王の結婚の儀 + (1992, 6, 9, false), + (1993, 6, 9, true), + (1994, 6, 9, false) + ] + testCases.forEach { (arg) in + + let (year, month, day, expected) = arg + let result = test.judgeJapaneseHoliday(year: year, month: month, day: day) + guard let weekday = Weekday(year: year, month: month, day: day) else { XCTFail() ; return } + let message = "\(year)年\(month)月\(day)日(\(weekday.longName)):\(result)" + if expected { + XCTAssertTrue (result, message) + } else { + XCTAssertFalse(result, message) + } + } + } + + func testPastHolidayFrom1997To2000() { + let test = CalculateCalendarLogic() + + //1997年〜2000年の場合のテストケース + let testCases: [(Int,Int,Int,Bool)] = + [ + // 1997年 + // 元日: 1997年1月1日(水曜日) + (1997, 1, 1, true), + + // 成人の日: 1997年1月15日(水曜日) + (1997, 1, 13, false), + (1997, 1, 15, true), + + // 建国記念の日: 1997年2月11日(火曜日) + (1997, 2, 11, true), + + // 春分の日: 1997年3月20日(木曜日) + (1997, 3, 19, false), + (1997, 3, 20, true), + (1997, 3, 21, false), + + // みどりの日: 1997年4月29日(火曜日) + (1997, 4, 29, true), + + // 憲法記念日: 1997年5月3日(土曜日) + (1997, 5, 3, true), + + // 国民の休日: 1997年5月4日(日曜日) + (1997, 5, 4, true), + + // こどもの日: 1997年5月5日(月曜日) + (1997, 5, 5, true), + (1997, 5, 6, false), + + // 海の日: 1997年7月20日(日曜日) + (1997, 7, 20, true), + + // 海の日の振替休日: 1997年7月21日(月曜日) + (1997, 7, 21, true), + + // 敬老の日: 1997年9月15日(月曜日) + (1997, 9, 15, true), + (1997, 9, 22, false), + + // 秋分の日: 1997年9月23日(火曜日) + (1997, 9, 22, false), + (1997, 9, 23, true), + (1997, 9, 24, false), + + // 体育の日: 1997年10月10日(金曜日) + (1997, 10, 10, true), + (1997, 10, 13, false), + + // 文化の日: 1997年11月3日(木曜日) + (1997, 11, 3, true), + + // 勤労感謝の日: 1997年11月23日(日曜日) + (1997, 11, 23, true), + + // 勤労感謝の日の振替休日: 1997年11月24日(月曜日) + (1997, 11, 24, true), + + //天皇誕生日: 1997年12月23日(火曜日) + (1997, 12, 23, true), + + // 1998年 + // 元日: 1998年1月1日(木曜日) + (1998, 1, 1, true), + + // 成人の日: 1998年1月15日(木曜日) + (1998, 1, 12, false), + (1998, 1, 15, true), + + // 建国記念の日: 1998年2月11日(水曜日) + (1998, 2, 11, true), + + // 春分の日: 1998年3月21日(土曜日) + (1998, 3, 20, false), + (1998, 3, 21, true), + (1998, 3, 22, false), + + // みどりの日: 1998年4月29日(水曜日) + (1998, 4, 29, true), + + // 憲法記念日: 1998年5月3日(日曜日) + (1998, 5, 3, true), + + // 国民の休日: 1998年5月4日(月曜日) + (1998, 5, 4, true), + + // こどもの日: 1998年5月5日(火曜日) + (1998, 5, 5, true), + (1998, 5, 6, false), + + // 海の日: 1998年7月20日(月曜日) + (1998, 7, 20, true), + + // 敬老の日: 1998年9月15日(火曜日) + (1998, 9, 15, true), + (1998, 9, 21, false), + + // 秋分の日: 1998年9月23日(水曜日) + (1998, 9, 22, false), + (1998, 9, 23, true), + (1998, 9, 24, false), + + // 体育の日: 1998年10月10日(土曜日) + (1998, 10, 10, true), + (1998, 10, 12, false), + + // 文化の日: 1998年11月3日(火曜日) + (1998, 11, 3, true), + + // 勤労感謝の日: 1998年11月23日(月曜日) + (1998, 11, 23, true), + + //天皇誕生日: 1998年12月23日(水曜日) + (1998, 12, 23, true), + + // 1999年 + // 元日: 1999年1月1日(金曜日) + (1999, 1, 1, true), + + // 成人の日: 1999年1月15日(金曜日) + (1999, 1, 11, false), + (1999, 1, 15, true), + + // 建国記念の日: 1999年2月11日(木曜日) + (1999, 2, 11, true), + + // 春分の日: 1999年3月21日(日曜日) + (1999, 3, 20, false), + (1999, 3, 21, true), + + // 春分の日の振替休日: 1999年3月22日(月曜日) + (1999, 3, 22, true), + + // みどりの日: 1999年4月29日(木曜日) + (1999, 4, 29, true), + + // 憲法記念日: 1999年5月3日(月曜日) + (1999, 5, 2, false), + (1999, 5, 3, true), + + // 国民の休日: 1999年5月4日(火曜日) + (1999, 5, 4, true), + + // こどもの日: 1999年5月5日(水曜日) + (1999, 5, 5, true), + (1999, 5, 6, false), + + // 海の日: 1999年7月20日(火曜日) + (1999, 7, 20, true), + + // 敬老の日: 1999年9月15日(水曜日) + (1999, 9, 15, true), + (1999, 9, 20, false), + + // 秋分の日: 1999年9月23日(木曜日) + (1999, 9, 22, false), + (1999, 9, 23, true), + (1999, 9, 24, false), + + // 体育の日: 1999年10月10日(日曜日) + (1999, 10, 10, true), + + // 体育の日の振替休日: 1999年10月11日(月曜日) + (1999, 10, 11, true), + + // 文化の日: 1999年11月3日(水曜日) + (1999, 11, 3, true), + + // 勤労感謝の日: 1999年11月23日(火曜日) + (1999, 11, 23, true), + + //天皇誕生日: 1999年12月23日(木曜日) + (1999, 12, 23, true), + + // 2000年 + // 元日: 2000年1月1日(土曜日) + (2000, 1, 1, true), + + // 成人の日: 2000年1月10日(月曜日) + (2000, 1, 10, true), + (2000, 1, 15, false), + + // 建国記念の日: 2000年2月11日(金曜日) + (2000, 2, 11, true), + + // 春分の日: 2000年3月20日(月曜日) + (2000, 3, 20, true), + (2000, 3, 21, false), + (2000, 3, 22, false), + + // みどりの日: 2000年4月29日(木曜日) + (2000, 4, 29, true), + + // 憲法記念日: 2000年5月3日(水曜日) + (2000, 5, 3, true), + + // 国民の休日: 2000年5月4日(木曜日) + (2000, 5, 4, true), + + // こどもの日: 2000年5月5日(金曜日) + (2000, 5, 5, true), + + // 海の日: 2000年7月20日(木曜日) + (2000, 7, 17, false), + (2000, 7, 20, true), + + // 敬老の日: 2000年9月15日(金曜日) + (2000, 9, 15, true), + (2000, 9, 18, false), + + // 秋分の日: 2000年9月23日(土曜日) + (2000, 9, 22, false), + (2000, 9, 23, true), + + // 体育の日: 2000年10月9日(月曜日) + (2000, 10, 9, true), + (2000, 10, 10, false), + + // 文化の日: 2000年11月3日(金曜日) + (2000, 11, 3, true), + + // 勤労感謝の日: 2000年11月23日(木曜日) + (2000, 11, 23, true), + + //天皇誕生日: 2000年12月23日(土曜日) + (2000, 12, 23, true), + ] + testCases.forEach { (arg) in + + let (year, month, day, expected) = arg + let result = test.judgeJapaneseHoliday(year: year, month: month, day: day) + guard let weekday = Weekday(year: year, month: month, day: day) else { XCTFail() ; return } + let message = "\(year)年\(month)月\(day)日(\(weekday.longName)):\(result)" + if expected { + XCTAssertTrue (result, message) + } else { + XCTAssertFalse(result, message) + } + } + } } diff --git a/handMadeCalendarAdvance.xcodeproj/project.xcworkspace/xcuserdata/sakaifumiya.xcuserdatad/UserInterfaceState.xcuserstate b/handMadeCalendarAdvance.xcodeproj/project.xcworkspace/xcuserdata/sakaifumiya.xcuserdatad/UserInterfaceState.xcuserstate index 397f99d367493345596a98e57226908372b75b9b..62654548bd6c2b29709f29695bcef2f57780c81e 100644 GIT binary patch delta 15928 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 delta 16194 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 XyV`fH??&IVzE^$k*gZ$4ARqo8pc#fj From 24b2ea4d1fdbc890126d9f67a2d6dc22c5ce7cc6 Mon Sep 17 00:00:00 2001 From: Fumiya Sakai Date: Thu, 4 Jan 2018 21:37:03 +0900 Subject: [PATCH 6/6] Integrate future test cases. --- .../CalculateCalendarLogicTests.swift | 69 ------------------ .../UserInterfaceState.xcuserstate | Bin 50139 -> 49969 bytes 2 files changed, 69 deletions(-) diff --git a/CalculateCalendarLogicTests/CalculateCalendarLogicTests.swift b/CalculateCalendarLogicTests/CalculateCalendarLogicTests.swift index 54a613a..515db35 100644 --- a/CalculateCalendarLogicTests/CalculateCalendarLogicTests.swift +++ b/CalculateCalendarLogicTests/CalculateCalendarLogicTests.swift @@ -148,76 +148,9 @@ class CalculateCalendarLogicTests: XCTestCase { // 2018年 // 元日: 2018年1月1日(月曜日) (2018, 1, 1, true), -<<<<<<< HEAD // 成人の日: 2018年1月8日(月曜日) (2018, 1, 8, true), - - // 建国記念の日: 2018年2月11日(日曜日) - (2018, 2, 11, true), - - // 建国記念の日の振替休日: 2018年2月12日(月曜日) - (2018, 2, 12, true), - - // 春分の日: 2018年3月21日(水曜日) - (2018, 3, 21, true), - - // 昭和の日: 2018年4月29日(日曜日) - (2018, 4, 29, true), - - // 昭和の日の振替休日: 2018年4月30日(月曜日) - (2018, 4, 30, true), - - // 憲法記念日: 2018年5月3日(木曜日) - (2018, 5, 3, true), - - // みどりの日: 2018年5月4日(金曜日) - (2018, 5, 4, true), - - // こどもの日: 2018年5月5日(土曜日) - (2018, 5, 5, true), - (2018, 5, 6, false), //5月6日は日曜日だけど祝日ではない - - // 海の日: 2018年7月16日(月曜日) - (2018, 7, 16, true), - - // 山の日: 2018年8月11日(土曜日) - (2018, 8, 11, true), - - // 敬老の日: 2018年9月17日(月曜日) - (2018, 9, 17, true), - - // おまけ: シルバーウィークはない - (2018, 9, 18, false), - (2018, 9, 19, false), - (2018, 9, 20, false), - (2018, 9, 21, false), - (2018, 9, 22, false), - - // 秋分の日: 2018年9月23日(日曜日) - (2018, 9, 23, true), - - // 秋分の日の振替休日: 2018年9月24日(月曜日) - (2018, 9, 24, true), - - // 体育の日: 2018年10月8日(月曜日) - (2018, 10, 8, true), - - // 文化の日: 2018年11月3日(土曜日) - (2018, 11, 3, true), - - // 勤労感謝の日: 2018年11月23日(金曜日) - (2018, 11, 23, true), - - //天皇誕生日: 2018年12月23日(日曜日) - (2018, 12, 23, true), - - //天皇誕生日: 2018年12月24日(月曜日) - (2018, 12, 24, true) -======= - - // 成人の日: 2018年1月8日(月曜日) - (2018, 1, 8, true), // 建国記念の日: 2018年2月11日(日曜日) (2018, 2, 11, true), @@ -431,8 +364,6 @@ class CalculateCalendarLogicTests: XCTestCase { // 天皇誕生日: 2021年12月23日(金曜日) (2022, 12, 23, true), - ->>>>>>> bf0376b79a8d16716c239c799107b2ffa88c9d53 ] testCases.forEach { (arg) in diff --git a/handMadeCalendarAdvance.xcodeproj/project.xcworkspace/xcuserdata/sakaifumiya.xcuserdatad/UserInterfaceState.xcuserstate b/handMadeCalendarAdvance.xcodeproj/project.xcworkspace/xcuserdata/sakaifumiya.xcuserdatad/UserInterfaceState.xcuserstate index 62654548bd6c2b29709f29695bcef2f57780c81e..1b64cf6c38f5ea68c8133d1f5ef1c82bbe488bb3 100644 GIT binary patch delta 23695 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 b&;8AQv0v)%xqqA;I@~vQ#DnvEfWP;D?O=n? delta 23975 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 F{sX`cw7LKQ