From 7f21cc0c7b20d3607cf5bec2d0fbb7cb8dd70fae Mon Sep 17 00:00:00 2001 From: Fumiya Sakai Date: Sun, 6 Dec 2020 12:33:15 +0900 Subject: [PATCH 01/17] =?UTF-8?q?[=E8=BF=BD=E5=8A=A0=E5=AF=BE=E5=BF=9C]=20?= =?UTF-8?q?xcuserdata=E3=81=AE=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UserInterfaceState.xcuserstate | Bin 73890 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 handMadeCalendarAdvance.xcodeproj/project.xcworkspace/xcuserdata/sakaifumiya.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/handMadeCalendarAdvance.xcodeproj/project.xcworkspace/xcuserdata/sakaifumiya.xcuserdatad/UserInterfaceState.xcuserstate b/handMadeCalendarAdvance.xcodeproj/project.xcworkspace/xcuserdata/sakaifumiya.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index d82946e24d0fb5d7ae41c191b786bc7f715fdd4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 73890 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 From b9995576d496c8ca859d991bdac029c00b39dd97 Mon Sep 17 00:00:00 2001 From: Fumiya Sakai Date: Sun, 6 Dec 2020 12:33:56 +0900 Subject: [PATCH 02/17] =?UTF-8?q?[=E3=82=B5=E3=83=B3=E3=83=97=E3=83=AB?= =?UTF-8?q?=E3=82=B3=E3=83=BC=E3=83=89=E4=BF=AE=E6=AD=A3]=20=E3=82=BB?= =?UTF-8?q?=E3=83=AB=E3=81=AE=E8=A6=8B=E3=81=9F=E7=9B=AE=E3=81=AB=E9=96=A2?= =?UTF-8?q?=E3=81=99=E3=82=8B=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UserInterfaceState.xcuserstate | Bin 0 -> 91411 bytes handMadeCalendarAdvance/CalendarCell.swift | 3 ++- 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 handMadeCalendarAdvance.xcodeproj/project.xcworkspace/xcuserdata/sakaifumiya.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/handMadeCalendarAdvance.xcodeproj/project.xcworkspace/xcuserdata/sakaifumiya.xcuserdatad/UserInterfaceState.xcuserstate b/handMadeCalendarAdvance.xcodeproj/project.xcworkspace/xcuserdata/sakaifumiya.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..e6a41d70642b2cc868db6506a9ffe13789158e45 GIT binary patch literal 91411 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

7-6T$Vuta+Vt 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 Date: Sun, 6 Dec 2020 12:38:02 +0900 Subject: [PATCH 03/17] =?UTF-8?q?[=E8=BF=BD=E5=8A=A0=E5=AF=BE=E5=BF=9C]=20?= =?UTF-8?q?=E5=86=8D=E5=BA=A6xcuserdata=E3=81=AE=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../UserInterfaceState.xcuserstate | Bin 91411 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 handMadeCalendarAdvance.xcodeproj/project.xcworkspace/xcuserdata/sakaifumiya.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/handMadeCalendarAdvance.xcodeproj/project.xcworkspace/xcuserdata/sakaifumiya.xcuserdatad/UserInterfaceState.xcuserstate b/handMadeCalendarAdvance.xcodeproj/project.xcworkspace/xcuserdata/sakaifumiya.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index e6a41d70642b2cc868db6506a9ffe13789158e45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 91411 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

7-6T$Vuta+Vt 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 Date: Sun, 6 Dec 2020 15:08:32 +0900 Subject: [PATCH 04/17] =?UTF-8?q?[=E3=82=B5=E3=83=B3=E3=83=97=E3=83=AB?= =?UTF-8?q?=E3=82=B3=E3=83=BC=E3=83=89=E8=AA=BF=E6=95=B4]=20=E6=96=B0?= =?UTF-8?q?=E3=81=9F=E3=81=AA=E3=82=B5=E3=83=B3=E3=83=97=E3=83=AB=E7=94=BB?= =?UTF-8?q?=E9=9D=A2=E3=81=AE=E8=BF=BD=E5=8A=A0=E3=81=A8=E6=97=A2=E5=AD=98?= =?UTF-8?q?=E3=82=B3=E3=83=BC=E3=83=89=E3=81=AE=E5=BE=AE=E8=AA=BF=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project.pbxproj | 18 ++- .../Base.lproj/Main.storyboard | 134 +++++++++++++++--- handMadeCalendarAdvance/CalendarCell.swift | 2 +- .../DatePickerCalendarViewController.swift | 16 +++ .../MainViewController.swift | 16 +++ .../MonthlyCalendarViewController.swift | 89 ++++++------ 6 files changed, 208 insertions(+), 67 deletions(-) create mode 100644 handMadeCalendarAdvance/DatePickerCalendarViewController.swift create mode 100644 handMadeCalendarAdvance/MainViewController.swift diff --git a/handMadeCalendarAdvance.xcodeproj/project.pbxproj b/handMadeCalendarAdvance.xcodeproj/project.pbxproj index 3e773ef..fa46b5f 100644 --- a/handMadeCalendarAdvance.xcodeproj/project.pbxproj +++ b/handMadeCalendarAdvance.xcodeproj/project.pbxproj @@ -18,6 +18,8 @@ DE7397041CCB4EC100A9A222 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DE7397021CCB4EC100A9A222 /* LaunchScreen.storyboard */; }; DE73970F1CCB4EC100A9A222 /* handMadeCalendarAdvanceTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE73970E1CCB4EC100A9A222 /* handMadeCalendarAdvanceTests.swift */; }; DE73971A1CCB4EC100A9A222 /* handMadeCalendarAdvanceUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE7397191CCB4EC100A9A222 /* handMadeCalendarAdvanceUITests.swift */; }; + DEE369B4257C8A1600A22800 /* MainViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEE369B3257C8A1600A22800 /* MainViewController.swift */; }; + DEE369C3257C8E5A00A22800 /* DatePickerCalendarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEE369C2257C8E5A00A22800 /* DatePickerCalendarViewController.swift */; }; E517AF4D1CE0F63C006847A0 /* CalculateCalendarLogic.h in Headers */ = {isa = PBXBuildFile; fileRef = E517AF4C1CE0F63C006847A0 /* CalculateCalendarLogic.h */; settings = {ATTRIBUTES = (Public, ); }; }; E517AF541CE0F63C006847A0 /* CalculateCalendarLogic.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E517AF4A1CE0F63C006847A0 /* CalculateCalendarLogic.framework */; }; E517AF5B1CE0F63C006847A0 /* CalculateCalendarLogicTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E517AF5A1CE0F63C006847A0 /* CalculateCalendarLogicTests.swift */; }; @@ -102,6 +104,8 @@ DE7397151CCB4EC100A9A222 /* handMadeCalendarAdvanceUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = handMadeCalendarAdvanceUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; DE7397191CCB4EC100A9A222 /* handMadeCalendarAdvanceUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = handMadeCalendarAdvanceUITests.swift; sourceTree = ""; }; DE73971B1CCB4EC100A9A222 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + DEE369B3257C8A1600A22800 /* MainViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainViewController.swift; sourceTree = ""; }; + DEE369C2257C8E5A00A22800 /* DatePickerCalendarViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatePickerCalendarViewController.swift; sourceTree = ""; }; E517AF4A1CE0F63C006847A0 /* CalculateCalendarLogic.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CalculateCalendarLogic.framework; sourceTree = BUILT_PRODUCTS_DIR; }; E517AF4C1CE0F63C006847A0 /* CalculateCalendarLogic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CalculateCalendarLogic.h; sourceTree = ""; }; E517AF4E1CE0F63C006847A0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -205,8 +209,8 @@ isa = PBXGroup; children = ( DE0166BA1CDE40DC002BB133 /* Component */, + DEE369BB257C8B5600A22800 /* ViewController */, DE7396F91CCB4EC100A9A222 /* AppDelegate.swift */, - DE7396FB1CCB4EC100A9A222 /* MonthlyCalendarViewController.swift */, DE7396FD1CCB4EC100A9A222 /* Main.storyboard */, DE7397001CCB4EC100A9A222 /* Assets.xcassets */, DE7397021CCB4EC100A9A222 /* LaunchScreen.storyboard */, @@ -233,6 +237,16 @@ path = handMadeCalendarAdvanceUITests; sourceTree = ""; }; + DEE369BB257C8B5600A22800 /* ViewController */ = { + isa = PBXGroup; + children = ( + DEE369B3257C8A1600A22800 /* MainViewController.swift */, + DE7396FB1CCB4EC100A9A222 /* MonthlyCalendarViewController.swift */, + DEE369C2257C8E5A00A22800 /* DatePickerCalendarViewController.swift */, + ); + name = ViewController; + sourceTree = ""; + }; E517AF4B1CE0F63C006847A0 /* CalculateCalendarLogic */ = { isa = PBXGroup; children = ( @@ -587,9 +601,11 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + DEE369C3257C8E5A00A22800 /* DatePickerCalendarViewController.swift in Sources */, DE7396FC1CCB4EC100A9A222 /* MonthlyCalendarViewController.swift in Sources */, DE7396FA1CCB4EC100A9A222 /* AppDelegate.swift in Sources */, DE0166BC1CDE5892002BB133 /* CalendarCell.swift in Sources */, + DEE369B4257C8A1600A22800 /* MainViewController.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/handMadeCalendarAdvance/Base.lproj/Main.storyboard b/handMadeCalendarAdvance/Base.lproj/Main.storyboard index f197ab6..b398550 100644 --- a/handMadeCalendarAdvance/Base.lproj/Main.storyboard +++ b/handMadeCalendarAdvance/Base.lproj/Main.storyboard @@ -1,16 +1,14 @@ - - - - + + - - + + - + @@ -23,10 +21,10 @@ - + - - + - - - + + + - - + @@ -109,6 +107,7 @@ + @@ -119,7 +118,104 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/handMadeCalendarAdvance/CalendarCell.swift b/handMadeCalendarAdvance/CalendarCell.swift index f441682..7186cb7 100644 --- a/handMadeCalendarAdvance/CalendarCell.swift +++ b/handMadeCalendarAdvance/CalendarCell.swift @@ -29,7 +29,7 @@ class CalendarCell: UICollectionViewCell { func setCell(cellText: String, cellTextColor: UIColor) { textLabel?.text = cellText textLabel?.textColor = cellTextColor - textLabel?.font = UIFont.systemFont(ofSize: 13.0) + textLabel?.font = UIFont.boldSystemFont(ofSize: 13.0) } //UIや見た目に関連する部分の初期化用メソッド diff --git a/handMadeCalendarAdvance/DatePickerCalendarViewController.swift b/handMadeCalendarAdvance/DatePickerCalendarViewController.swift new file mode 100644 index 0000000..d9d7bda --- /dev/null +++ b/handMadeCalendarAdvance/DatePickerCalendarViewController.swift @@ -0,0 +1,16 @@ +// +// DatePickerCalendarViewController.swift +// handMadeCalendarAdvance +// +// Created by 酒井文也 on 2020/12/06. +// Copyright © 2020 just1factory. All rights reserved. +// + +import UIKit + +class DatePickerCalendarViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + } +} diff --git a/handMadeCalendarAdvance/MainViewController.swift b/handMadeCalendarAdvance/MainViewController.swift new file mode 100644 index 0000000..d3510fb --- /dev/null +++ b/handMadeCalendarAdvance/MainViewController.swift @@ -0,0 +1,16 @@ +// +// MainViewController.swift +// handMadeCalendarAdvance +// +// Created by 酒井文也 on 2020/12/06. +// Copyright © 2020 just1factory. All rights reserved. +// + +import UIKit + +class MainViewController: UIViewController { + + override func viewDidLoad() { + super.viewDidLoad() + } +} diff --git a/handMadeCalendarAdvance/MonthlyCalendarViewController.swift b/handMadeCalendarAdvance/MonthlyCalendarViewController.swift index 61a2f29..03dbfc4 100644 --- a/handMadeCalendarAdvance/MonthlyCalendarViewController.swift +++ b/handMadeCalendarAdvance/MonthlyCalendarViewController.swift @@ -9,24 +9,24 @@ import UIKit import CalculateCalendarLogic -//カレンダーに関する定数やメソッドを定義した構造体 +// カレンダーに関する定数やメソッドを定義した構造体 struct CalendarSetting { static let calendarCellName = "CalendarCell" - //カレンダーのセクション数やアイテム数に関するセッティング + // カレンダーのセクション数やアイテム数に関するセッティング static let sectionCount = 2 static let firstSectionItemCount = 7 static let secondSectionItemCount = 42 - fileprivate static let saturdayColor = UIColor(red: CGFloat(0.400), green: CGFloat(0.471), blue: CGFloat(0.980), alpha: CGFloat(1.0)) - fileprivate static let holidayColor = UIColor(red: CGFloat(0.831), green: CGFloat(0.349), blue: CGFloat(0.224), alpha: CGFloat(1.0)) - fileprivate static let weekdayColor = UIColor.darkGray + private static let saturdayColor = UIColor(red: CGFloat(0.400), green: CGFloat(0.471), blue: CGFloat(0.980), alpha: CGFloat(1.0)) + private static let holidayColor = UIColor(red: CGFloat(0.831), green: CGFloat(0.349), blue: CGFloat(0.224), alpha: CGFloat(1.0)) + private static let weekdayColor = UIColor.darkGray - //カレンダーの日付に関するセッティング + // カレンダーの日付に関するセッティング static let weekList: [String] = ["日", "月", "火", "水", "木", "金", "土"] - //カレンダーのカラー表示に関するセッティング(①日曜日または祝祭日の場合の色・②土曜日の場合の色・③平日の場合の色の決定) + // カレンダーのカラー表示に関するセッティング(①日曜日または祝祭日の場合の色・②土曜日の場合の色・③平日の場合の色の決定) static func getCalendarColor(_ weekdayIndex: Int, isHoliday: Bool = false) -> UIColor { if isSunday(weekdayIndex) || isHoliday { return holidayColor @@ -36,17 +36,19 @@ struct CalendarSetting { return weekdayColor } } - - fileprivate static func isSunday(_ weekdayIndex: Int) -> Bool { + + // 土曜日の判定 + private static func isSunday(_ weekdayIndex: Int) -> Bool { return (weekdayIndex % 7 == Weekday.sun.rawValue) } - - fileprivate static func isSaturday(_ weekdayIndex: Int) -> Bool { + + // 日曜日の判定 + private static func isSaturday(_ weekdayIndex: Int) -> Bool { return (weekdayIndex % 7 == Weekday.sat.rawValue) } } -//カレンダー表示&計算用の値を取得するための構造体 +// カレンダー表示&計算用の値を取得するための構造体 struct TargetDateSetting { static func getTargetYearAndMonthCalendar(_ year: Int, month: Int) -> (Int, Int) { @@ -55,7 +57,7 @@ struct TargetDateSetting { * 現在月の1日のdayOfWeek(曜日の値)を使ってカレンダーの始まる位置を決めるので'yyyy年mm月1日'のデータを作成する。 *************/ - //Calendarクラスのインスタンスを初期化した後に日付の情報を取得して、「①指定の年月の1日時点の日付・②日数を年と月」をタプルで返す + // Calendarクラスのインスタンスを初期化した後に日付の情報を取得して、「①指定の年月の1日時点の日付・②日数を年と月」をタプルで返す let targetCalendar: Calendar = Calendar(identifier: Calendar.Identifier.gregorian) var targetComps: DateComponents = DateComponents() @@ -65,18 +67,18 @@ struct TargetDateSetting { let targetDate: Date = targetCalendar.date(from: targetComps)! - //引数で渡されたCalendarクラスのインスタンスとDateクラスのインスタンスをもとに日付の情報を取得して、指定の年月の1日時点の日付と日数を取得してタプルで返す + // 引数で渡されたCalendarクラスのインスタンスとDateクラスのインスタンスをもとに日付の情報を取得して、指定の年月の1日時点の日付と日数を取得してタプルで返す let range: Range = targetCalendar.range(of: .day, in: .month, for: targetDate)! let comps: DateComponents = targetCalendar.dateComponents([.year, .month, .day, .weekday], from: targetDate) return (Int(comps.weekday!), Int(range.count)) } } -//現在日付を取得するための構造体 +// 現在日付を取得するための構造体 struct CurrentDateSetting { static func getCurrentYearAndMonth() -> (targetYear: Int, targetMonth: Int) { - //Calendarクラスのインスタンスを初期化した後に日付の情報を取得して、年と月をタプルで返す + // Calendarクラスのインスタンスを初期化した後に日付の情報を取得して、年と月をタプルで返す let currentCalendar: Calendar = Calendar(identifier: Calendar.Identifier.gregorian) let comps: DateComponents = currentCalendar.dateComponents([.year, .month], from: Date()) return (Int(comps.year!), Int(comps.month!)) @@ -85,39 +87,39 @@ struct CurrentDateSetting { class MonthlyCalendarViewController: UIViewController { - //ラベルに表示するための年と月の変数 + // ラベルに表示するための年と月の変数 var targetYear: Int! = CurrentDateSetting.getCurrentYearAndMonth().targetYear var targetMonth: Int! = CurrentDateSetting.getCurrentYearAndMonth().targetMonth - //カレンダー用のUICollectionView + // カレンダー用のUICollectionView @IBOutlet weak var calendarCollectionView: UICollectionView! - //Outlet接続をしたUI部品の一覧 + // Outlet接続をしたUI部品の一覧 @IBOutlet weak var prevMonthButton: UIButton! @IBOutlet weak var nextMonthButton: UIButton! @IBOutlet weak var currentMonthLabel: UILabel! @IBOutlet weak var backgroundView: UIView! - //該当年月の日のリスト + // 該当年月の日のリスト var dayCellLists: [String?] = [] - //日本の祝祭日判定用のインスタンス + // 日本の祝祭日判定用のインスタンス let holidayObj: CalculateCalendarLogic = CalculateCalendarLogic() override func viewDidLoad() { super.viewDidLoad() - //Cellに使われるクラスを登録 + // Cellに使われるクラスを登録 calendarCollectionView.register(CalendarCell.self, forCellWithReuseIdentifier: CalendarSetting.calendarCellName) - //UICollectionViewDelegate,UICollectionViewDataSourceの拡張宣言 + // UICollectionViewDelegate,UICollectionViewDataSourceの拡張宣言 calendarCollectionView.delegate = self calendarCollectionView.dataSource = self changeCalendar() } - //前の月のボタンが押された際のアクション → 現在の月に対して-1をする + // 前の月のボタンが押された際のアクション → 現在の月に対して-1をする @IBAction func displayPrevMonth(_ sender: AnyObject) { if targetMonth == 1 { targetYear = targetYear - 1 @@ -128,7 +130,7 @@ class MonthlyCalendarViewController: UIViewController { changeCalendar() } - //次の月のボタンが押された際のアクション → 現在の月に対して+1をする + // 次の月のボタンが押された際のアクション → 現在の月に対して+1をする @IBAction func displayNextMonth(_ sender: AnyObject) { if targetMonth == 12 { targetYear = targetYear + 1 @@ -139,20 +141,20 @@ class MonthlyCalendarViewController: UIViewController { changeCalendar() } - //カレンダー表記を変更する - fileprivate func changeCalendar() { + // カレンダー表記を変更する + private func changeCalendar() { updateDataSource() calendarCollectionView.reloadData() displaySelectedCalendar() } - //表示対象のカレンダーの年月を表示する - fileprivate func displaySelectedCalendar() { + // 表示対象のカレンダーの年月を表示する + private func displaySelectedCalendar() { currentMonthLabel.text = "\(targetYear!)年\(targetMonth!)月" } - //CollectionViewCellに格納する日のデータを作成する - fileprivate func updateDataSource() { + // CollectionViewCellに格納する日のデータを作成する + private func updateDataSource() { var day = 1 dayCellLists = [] for i in 0..<(CalendarSetting.secondSectionItemCount) { @@ -165,8 +167,8 @@ class MonthlyCalendarViewController: UIViewController { } } - //セルに値が格納されるかを判定する - fileprivate func isCellUsing(_ index: Int) -> Bool { + // セルに値が格納されるかを判定する + private func isCellUsing(_ index: Int) -> Bool { //該当の年と月から1日の曜日と最大日数のタプルを取得する let targetConcern: (Int, Int) = TargetDateSetting.getTargetYearAndMonthCalendar(targetYear, month: targetMonth) @@ -183,10 +185,6 @@ class MonthlyCalendarViewController: UIViewController { } return false } - - override func didReceiveMemoryWarning() { - super.didReceiveMemoryWarning() - } } // MARK: - UICollectionViewDataSource @@ -198,12 +196,12 @@ extension MonthlyCalendarViewController: UICollectionViewDataSource { case calendarContentsArea = 1 } - //配置したCollectionViewのセクション数を返す + // 配置したCollectionViewのセクション数を返す func numberOfSections(in collectionView: UICollectionView) -> Int { return CalendarSetting.sectionCount } - //配置したCollectionViewの各セクションのアイテム数を返す + // 配置したCollectionViewの各セクションのアイテム数を返す func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { switch section { case indexType.weekdayTitleArea.rawValue: @@ -219,14 +217,14 @@ extension MonthlyCalendarViewController: UICollectionViewDataSource { let cell = collectionView.dequeueReusableCell(withReuseIdentifier: CalendarSetting.calendarCellName, for: indexPath) as! CalendarCell switch indexPath.section { case indexType.weekdayTitleArea.rawValue: - //曜日を表示する + // 曜日を表示する cell.setCell( cellText: CalendarSetting.weekList[indexPath.row], cellTextColor: CalendarSetting.getCalendarColor(indexPath.row) ) return cell case indexType.calendarContentsArea.rawValue: - //該当年月の日付を表示する + // 該当年月の日付を表示する let day: String? = dayCellLists[indexPath.row] if isCellUsing(indexPath.row) { let isHoliday: Bool = holidayObj.judgeJapaneseHoliday(year: targetYear, month: targetMonth, day: Int(day!)!) @@ -253,7 +251,7 @@ extension MonthlyCalendarViewController: UICollectionViewDataSource { extension MonthlyCalendarViewController: UICollectionViewDelegate { func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { - //日付が入るセルならば処理をする + // 日付が入るセルならば処理をする if isCellUsing(indexPath.row) { let day: String? = dayCellLists[indexPath.row] print("\(targetYear!)年\(targetMonth!)月\(day!)日") @@ -265,7 +263,7 @@ extension MonthlyCalendarViewController: UICollectionViewDelegate { extension MonthlyCalendarViewController: UICollectionViewDelegateFlowLayout { - //セルのサイズを設定 + // セルのサイズを設定 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, sizeForItemAt indexPath: IndexPath) -> CGSize { let numberOfMargin: CGFloat = 8.0 let width: CGFloat = (collectionView.frame.size.width - CGFloat(1.5) * numberOfMargin) / CGFloat(7) @@ -273,14 +271,13 @@ extension MonthlyCalendarViewController: UICollectionViewDelegateFlowLayout { return CGSize(width: width, height: height) } - //セルの垂直方向のマージンを設定 + // セルの垂直方向のマージンを設定 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumLineSpacingForSectionAt section: Int) -> CGFloat { return 1.5 } - //セルの水平方向のマージンを設定 + // セルの水平方向のマージンを設定 func collectionView(_ collectionView: UICollectionView, layout collectionViewLayout: UICollectionViewLayout, minimumInteritemSpacingForSectionAt section: Int) -> CGFloat { return 1.5 } - } From 1f19f42b2d210fd771da15a8ae24794ed754c157 Mon Sep 17 00:00:00 2001 From: Fumiya Sakai Date: Sun, 6 Dec 2020 19:20:43 +0900 Subject: [PATCH 05/17] =?UTF-8?q?[=E3=82=B5=E3=83=B3=E3=83=97=E3=83=AB?= =?UTF-8?q?=E3=82=B3=E3=83=BC=E3=83=89=E8=AA=BF=E6=95=B4]=20DatePicker?= =?UTF-8?q?=E3=81=8B=E3=82=89=E3=81=AE=E5=85=A5=E5=8A=9B=E3=82=B5=E3=83=B3?= =?UTF-8?q?=E3=83=97=E3=83=AB=E3=82=92=E8=BF=BD=E5=8A=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../project.pbxproj | 4 + .../xcdebugger/Breakpoints_v2.xcbkptlist | 1 + .../Base.lproj/Main.storyboard | 61 +++++++++- .../DatePickerCalendarViewController.swift | 106 ++++++++++++++++++ .../DisplayDateTextField.swift | 27 +++++ .../MonthlyCalendarViewController.swift | 22 ++-- 6 files changed, 206 insertions(+), 15 deletions(-) create mode 100644 handMadeCalendarAdvance/DisplayDateTextField.swift diff --git a/handMadeCalendarAdvance.xcodeproj/project.pbxproj b/handMadeCalendarAdvance.xcodeproj/project.pbxproj index fa46b5f..efeb2a6 100644 --- a/handMadeCalendarAdvance.xcodeproj/project.pbxproj +++ b/handMadeCalendarAdvance.xcodeproj/project.pbxproj @@ -20,6 +20,7 @@ DE73971A1CCB4EC100A9A222 /* handMadeCalendarAdvanceUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE7397191CCB4EC100A9A222 /* handMadeCalendarAdvanceUITests.swift */; }; DEE369B4257C8A1600A22800 /* MainViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEE369B3257C8A1600A22800 /* MainViewController.swift */; }; DEE369C3257C8E5A00A22800 /* DatePickerCalendarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEE369C2257C8E5A00A22800 /* DatePickerCalendarViewController.swift */; }; + DEE369D1257CCD3400A22800 /* DisplayDateTextField.swift in Sources */ = {isa = PBXBuildFile; fileRef = DEE369D0257CCD3400A22800 /* DisplayDateTextField.swift */; }; E517AF4D1CE0F63C006847A0 /* CalculateCalendarLogic.h in Headers */ = {isa = PBXBuildFile; fileRef = E517AF4C1CE0F63C006847A0 /* CalculateCalendarLogic.h */; settings = {ATTRIBUTES = (Public, ); }; }; E517AF541CE0F63C006847A0 /* CalculateCalendarLogic.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = E517AF4A1CE0F63C006847A0 /* CalculateCalendarLogic.framework */; }; E517AF5B1CE0F63C006847A0 /* CalculateCalendarLogicTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E517AF5A1CE0F63C006847A0 /* CalculateCalendarLogicTests.swift */; }; @@ -106,6 +107,7 @@ DE73971B1CCB4EC100A9A222 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; DEE369B3257C8A1600A22800 /* MainViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainViewController.swift; sourceTree = ""; }; DEE369C2257C8E5A00A22800 /* DatePickerCalendarViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DatePickerCalendarViewController.swift; sourceTree = ""; }; + DEE369D0257CCD3400A22800 /* DisplayDateTextField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DisplayDateTextField.swift; sourceTree = ""; }; E517AF4A1CE0F63C006847A0 /* CalculateCalendarLogic.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = CalculateCalendarLogic.framework; sourceTree = BUILT_PRODUCTS_DIR; }; E517AF4C1CE0F63C006847A0 /* CalculateCalendarLogic.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = CalculateCalendarLogic.h; sourceTree = ""; }; E517AF4E1CE0F63C006847A0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -175,6 +177,7 @@ isa = PBXGroup; children = ( DE0166BB1CDE5892002BB133 /* CalendarCell.swift */, + DEE369D0257CCD3400A22800 /* DisplayDateTextField.swift */, ); name = Component; sourceTree = ""; @@ -601,6 +604,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + DEE369D1257CCD3400A22800 /* DisplayDateTextField.swift in Sources */, DEE369C3257C8E5A00A22800 /* DatePickerCalendarViewController.swift in Sources */, DE7396FC1CCB4EC100A9A222 /* MonthlyCalendarViewController.swift in Sources */, DE7396FA1CCB4EC100A9A222 /* AppDelegate.swift in Sources */, diff --git a/handMadeCalendarAdvance.xcodeproj/xcuserdata/sakaifumiya.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/handMadeCalendarAdvance.xcodeproj/xcuserdata/sakaifumiya.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist index fe2b454..aca474b 100644 --- a/handMadeCalendarAdvance.xcodeproj/xcuserdata/sakaifumiya.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ b/handMadeCalendarAdvance.xcodeproj/xcuserdata/sakaifumiya.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -1,5 +1,6 @@ diff --git a/handMadeCalendarAdvance/Base.lproj/Main.storyboard b/handMadeCalendarAdvance/Base.lproj/Main.storyboard index b398550..9fd98d9 100644 --- a/handMadeCalendarAdvance/Base.lproj/Main.storyboard +++ b/handMadeCalendarAdvance/Base.lproj/Main.storyboard @@ -1,9 +1,9 @@ - + - + @@ -196,7 +196,7 @@ - + @@ -204,13 +204,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + diff --git a/handMadeCalendarAdvance/DatePickerCalendarViewController.swift b/handMadeCalendarAdvance/DatePickerCalendarViewController.swift index d9d7bda..8a824b0 100644 --- a/handMadeCalendarAdvance/DatePickerCalendarViewController.swift +++ b/handMadeCalendarAdvance/DatePickerCalendarViewController.swift @@ -7,10 +7,116 @@ // import UIKit +import CalculateCalendarLogic + +enum DatePickerStyle: Int { + case drumroll = 0 + case calendar = 1 +} class DatePickerCalendarViewController: UIViewController { + // 入力用UIDataPickerのインスタンス + private var datePicker = UIDatePicker() + + // 日本の祝祭日判定用のインスタンス + private let holidayObj: CalculateCalendarLogic = CalculateCalendarLogic() + + // 日付を文字列に変換するためのDateFormatter + private var stringDateFormatter: DateFormatter = { + let dateFormatter = DateFormatter() + dateFormatter.locale = Locale(identifier: "en_US_POSIX") + dateFormatter.timeZone = TimeZone.current + dateFormatter.dateFormat = "yyyy/MM/dd" + return dateFormatter + }() + + // Outlet接続をしたUI部品の一覧 + @IBOutlet weak var modeSegmentedControl: UISegmentedControl! + @IBOutlet weak var selectDateTextField: DisplayDateTextField! + override func viewDidLoad() { super.viewDidLoad() + + // UISegmentedControlに関する設定 + if #available(iOS 14.0, *) { + modeSegmentedControl.isEnabled = true + } else { + modeSegmentedControl.isEnabled = false + } + modeSegmentedControl.addTarget(self, action: #selector(self.switchDatePickerStyle(sender:)), for: .valueChanged) + + // UIDatePicker表示スタイルに関する設定 + if #available(iOS 14.0, *) { + datePicker.preferredDatePickerStyle = .wheels + } + datePicker.datePickerMode = .date + datePicker.date = Date() + + // UITextFieldでUIDatePickerと一緒に表示するUIToolBarに関する設定 + let toolbar = UIToolbar() + let spacelItem = UIBarButtonItem(barButtonSystemItem: .flexibleSpace, target: self, action: nil) + let doneItem = UIBarButtonItem(title: "Set!", style: .done, target: self, action: #selector(self.closeDatePicker)) + toolbar.frame = CGRect(x: 0, y: 0, width: view.frame.size.width, height: 44.0) + toolbar.setItems([spacelItem, doneItem], animated: true) + + // 日付を表示するUITextFieldに関する設定 + selectDateTextField.delegate = self + selectDateTextField.inputView = datePicker + selectDateTextField.inputAccessoryView = toolbar + } + + // SegmentedControl操作でのUIDatePicker表示スタイルの変更処理 + @objc private func switchDatePickerStyle(sender: UISegmentedControl) { + let index = sender.selectedSegmentIndex + if #available(iOS 14.0, *) { + switch DatePickerStyle(rawValue: index) { + case .drumroll: + datePicker.preferredDatePickerStyle = .wheels + case .calendar: + // MEMO: inline表示は表示バグがあるので不自然な形で表示されてしまう... + // https://qiita.com/kj_trsm/items/a53b0b3f7e1bc7c06106 + datePicker.preferredDatePickerStyle = .inline + default: + break + } + } + } + + // UITextFieldのFirstResponderの解除処理 + @objc private func closeDatePicker() { + if selectDateTextField.isFirstResponder { + selectDateTextField.resignFirstResponder() + } + } +} + +// MARK: - UITextFieldDelegate + +extension DatePickerCalendarViewController: UITextFieldDelegate { + + func textFieldDidBeginEditing(_ textField: UITextField) { + modeSegmentedControl.isEnabled = false + } + + func textFieldDidEndEditing(_ textField: UITextField) { + modeSegmentedControl.isEnabled = true + + // 日付を文字列に変換したものをUITextFieldへ反映 + let dateString = stringDateFormatter.string(from: datePicker.date) + selectDateTextField.text = dateString + + // 文字列から年月日の数値を取得 + let elements: [String] = dateString.components(separatedBy: "/") + guard let year = Int(elements[0]), let month = Int(elements[1]), let day = Int(elements[2]) else { + return + } + + // 祝祭日ならば文字を赤色に変更する + if holidayObj.judgeJapaneseHoliday(year: year, month: month, day: day) { + selectDateTextField.textColor = UIColor.red + } else { + selectDateTextField.textColor = UIColor.black + } } } diff --git a/handMadeCalendarAdvance/DisplayDateTextField.swift b/handMadeCalendarAdvance/DisplayDateTextField.swift new file mode 100644 index 0000000..56e592f --- /dev/null +++ b/handMadeCalendarAdvance/DisplayDateTextField.swift @@ -0,0 +1,27 @@ +// +// DisplayDateTextField.swift +// handMadeCalendarAdvance +// +// Created by 酒井文也 on 2020/12/06. +// Copyright © 2020 just1factory. All rights reserved. +// + +import UIKit + +class DisplayDateTextField: UITextField { + + // 入力カーソル表示をしない形にする + override func caretRect(for position: UITextPosition) -> CGRect { + return CGRect.zero + } + + // 範囲選択のカーソルを非表示にする + override func selectionRects(for range: UITextRange) -> [UITextSelectionRect] { + return [] + } + + // 長押しして表示されるメニューを非表示にする + override func canPerformAction(_ action: Selector, withSender sender: Any?) -> Bool { + return false + } +} diff --git a/handMadeCalendarAdvance/MonthlyCalendarViewController.swift b/handMadeCalendarAdvance/MonthlyCalendarViewController.swift index 03dbfc4..d52332f 100644 --- a/handMadeCalendarAdvance/MonthlyCalendarViewController.swift +++ b/handMadeCalendarAdvance/MonthlyCalendarViewController.swift @@ -18,14 +18,14 @@ struct CalendarSetting { static let sectionCount = 2 static let firstSectionItemCount = 7 static let secondSectionItemCount = 42 - + private static let saturdayColor = UIColor(red: CGFloat(0.400), green: CGFloat(0.471), blue: CGFloat(0.980), alpha: CGFloat(1.0)) private static let holidayColor = UIColor(red: CGFloat(0.831), green: CGFloat(0.349), blue: CGFloat(0.224), alpha: CGFloat(1.0)) private static let weekdayColor = UIColor.darkGray - + // カレンダーの日付に関するセッティング static let weekList: [String] = ["日", "月", "火", "水", "木", "金", "土"] - + // カレンダーのカラー表示に関するセッティング(①日曜日または祝祭日の場合の色・②土曜日の場合の色・③平日の場合の色の決定) static func getCalendarColor(_ weekdayIndex: Int, isHoliday: Bool = false) -> UIColor { if isSunday(weekdayIndex) || isHoliday { @@ -88,9 +88,15 @@ struct CurrentDateSetting { class MonthlyCalendarViewController: UIViewController { // ラベルに表示するための年と月の変数 - var targetYear: Int! = CurrentDateSetting.getCurrentYearAndMonth().targetYear - var targetMonth: Int! = CurrentDateSetting.getCurrentYearAndMonth().targetMonth + private var targetYear: Int! = CurrentDateSetting.getCurrentYearAndMonth().targetYear + private var targetMonth: Int! = CurrentDateSetting.getCurrentYearAndMonth().targetMonth + + // 該当年月の日のリスト + private var dayCellLists: [String?] = [] + // 日本の祝祭日判定用のインスタンス + private let holidayObj: CalculateCalendarLogic = CalculateCalendarLogic() + // カレンダー用のUICollectionView @IBOutlet weak var calendarCollectionView: UICollectionView! @@ -100,12 +106,6 @@ class MonthlyCalendarViewController: UIViewController { @IBOutlet weak var currentMonthLabel: UILabel! @IBOutlet weak var backgroundView: UIView! - // 該当年月の日のリスト - var dayCellLists: [String?] = [] - - // 日本の祝祭日判定用のインスタンス - let holidayObj: CalculateCalendarLogic = CalculateCalendarLogic() - override func viewDidLoad() { super.viewDidLoad() From 286cc0843d077ade96389b6484f0286c0c97381e Mon Sep 17 00:00:00 2001 From: Fumiya Sakai Date: Sun, 6 Dec 2020 20:40:31 +0900 Subject: [PATCH 06/17] =?UTF-8?q?[2021=E5=B9=B4=E3=81=AB=E9=96=A2=E3=81=99?= =?UTF-8?q?=E3=82=8B=E5=AF=BE=E5=BF=9C]=202021=E5=B9=B412=E6=9C=881?= =?UTF-8?q?=E6=97=A5=E3=81=AB=E5=87=BA=E3=81=9F=E7=A5=9D=E7=A5=AD=E6=97=A5?= =?UTF-8?q?=E3=81=AB=E9=96=A2=E3=81=99=E3=82=8B=E3=83=91=E3=83=96=E3=82=B3?= =?UTF-8?q?=E3=83=A1=E3=81=AE=E5=8F=8D=E6=98=A0=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CalculateCalendarLogic.swift | 30 ++++++++--- .../CalculateCalendarLogicTests.swift | 52 +++++++++++++++++++ 2 files changed, 76 insertions(+), 6 deletions(-) diff --git a/CalculateCalendarLogic/CalculateCalendarLogic.swift b/CalculateCalendarLogic/CalculateCalendarLogic.swift index fe364b0..e0d2de5 100644 --- a/CalculateCalendarLogic/CalculateCalendarLogic.swift +++ b/CalculateCalendarLogic/CalculateCalendarLogic.swift @@ -178,7 +178,7 @@ public struct CalculateCalendarLogic { minute: 0, second: 0, nanosecond: 0)) else { - fatalError() // FIXME: throwにしたほうがよい? + fatalError("date is invalid.") } let weekdayNum = cal.component(.weekday, from: date) // 1:日曜日 ~ 7:土曜日 @@ -200,6 +200,12 @@ public struct CalculateCalendarLogic { /// See also: http://www8.cao.go.jp/chosei/shukujitsu/gaiyou.html let SpecialProvisionYear = 2020 + /// 「国民の祝日」の特例が2020年(平成32年12月2日)に公布・施行された。 + /// 令和3年(2021年)に限り「海の日」は7月22日、「スポーツの日」は7月23日、「山の日」は8月8日となる。 + /// ※ 国民の祝日に関する法律第3条第2項の規定に基づき、8月9日は休日となります。 + /// See also: http://www8.cao.go.jp/chosei/shukujitsu/gaiyou.html + let SpecialExtraProvisionYear = 2021 + /// (注意)春分の日・秋分の日は1948年以前も祝祭日であったが、このカレンダーロジックの基準は1948年〜を基準とするので考慮しない /// See also: https://ja.wikipedia.org/wiki/%E7%9A%87%E9%9C%8A%E7%A5%AD @@ -306,7 +312,7 @@ public struct CalculateCalendarLogic { case (year, 5, 6, _) where year >= AlternateHolidaysLawYear && getGoldenWeekAlterHoliday(year: year, weekday: weekday): return true - //(1).7月20日(1996年から2002年まで)、(2).7月の第3月曜日(2003年から)、(3).7月23日(2020年のみ): 海の日 + //(1).7月20日(1996年から2002年まで)、(2).7月の第3月曜日(2003年から)、(3).7月23日(2020年のみ)、(4).7月22日(2021年のみ): 海の日 case (1996...2002, 7, 20, _): return true @@ -316,12 +322,15 @@ public struct CalculateCalendarLogic { case (SpecialProvisionYear, 7, 23, _): return true - + + case (SpecialExtraProvisionYear, 7, 22, _): + return true + //7月21日: 海の日の振替休日 case (1996...2002, 7, 21, .mon): return true - //(1).8月11日(2016年から)、(2).8月10日(2020年のみ): 山の日 + //(1).8月11日(2016年から)、(2).8月10日(2020年のみ)、(3).8月8日(2021年のみ ※8月9日振替休日): 山の日 case (year, 8, 11, _) where year > 2015 && year != SpecialProvisionYear: return true @@ -329,6 +338,12 @@ public struct CalculateCalendarLogic { case (SpecialProvisionYear, 8, 10, _): return true + case (SpecialExtraProvisionYear, 8, 8, _): + return true + + case (SpecialExtraProvisionYear, 8, 9, .mon): + return true + //8月12日: 山の日の振替休日 case (year, 8, 12, .mon) where year > 2015: return true @@ -364,7 +379,7 @@ public struct CalculateCalendarLogic { && getAlterHolidaySliverWeek(year: year) && year > 2008: return true - //(1).10月10日(1966年から1999年まで)、(2).10月の第2月曜日(2000年から)、(3).7月24日(2020年のみ): 体育の日(スポーツの日) + //(1).10月10日(1966年から1999年まで)、(2).10月の第2月曜日(2000年から)、(3).7月24日(2020年のみ)、(4).7月23日(2021年のみ): 体育の日(スポーツの日) case (1966...1999, 10, 10, _): return true @@ -374,7 +389,10 @@ public struct CalculateCalendarLogic { case (SpecialProvisionYear, 7, 24, _): return true - + + case (SpecialExtraProvisionYear, 7, 23, _): + return true + //10月11日: 体育の日の振替休日 case (1966...1999, 10, 11, .mon): return true diff --git a/CalculateCalendarLogicTests/CalculateCalendarLogicTests.swift b/CalculateCalendarLogicTests/CalculateCalendarLogicTests.swift index 5ea8e43..cb1c373 100644 --- a/CalculateCalendarLogicTests/CalculateCalendarLogicTests.swift +++ b/CalculateCalendarLogicTests/CalculateCalendarLogicTests.swift @@ -324,6 +324,58 @@ class CalculateCalendarLogicTests: XCTestCase { // 勤労感謝の日: 2020年11月23日(月曜日) (2020, 11, 23, true), + // 2021年 + // 元日: 2021年1月1日(金曜日) + (2021, 1, 1, true), + + // 成人の日: 2021年1月11日(月曜日) + (2021, 1, 11, true), + + // 建国記念の日: 2021年2月11日(木曜日) + (2021, 2, 11, true), + + // 天皇誕生日: 2021年2月23日(火曜日) + (2021, 2, 23, true), + + // 春分の日: 2021年3月20日(土曜日) + (2021, 3, 20, true), + + // 昭和の日: 2021年4月29日(木曜日) + (2021, 4, 29, true), + + // 憲法記念日: 2021年5月3日(月曜日) + (2021, 5, 3, true), + + // みどりの日: 2021年5月4日(火曜日) + (2021, 5, 4, true), + + // こどもの日: 2021年5月5日(水曜日) + (2021, 5, 5, true), + + // 海の日: 2021年7月22日(木曜日) + (2021, 7, 22, true), + + // スポーツの日: 2021年7月23日(金曜日) + (2021, 7, 23, true), + + // 山の日: 2021年8月8日(日曜日) + (2021, 8, 8, true), + + // 振替休日: 2021年8月9日(月曜日) + (2021, 8, 9, true), + + // 敬老の日: 2021年9月20日(月曜日) + (2021, 9, 20, true), + + // 秋分の日: 2021年9月23日(木曜日) + (2021, 9, 23, true), + + // 文化の日: 2021年11月3日(水曜日) + (2021, 11, 3, true), + + // 勤労感謝の日: 2020年11月23日(火曜日) + (2021, 11, 23, true), + // 2022年 // 元日: 2022年1月1日(土曜日) (2022, 1, 1, true), From 26d919fe35c21508e7b6f5d53141f8e68ec34ecb Mon Sep 17 00:00:00 2001 From: Fumiya Sakai Date: Sun, 6 Dec 2020 20:47:20 +0900 Subject: [PATCH 07/17] =?UTF-8?q?[2021=E5=B9=B4=E3=81=AB=E9=96=A2=E3=81=99?= =?UTF-8?q?=E3=82=8B=E5=AF=BE=E5=BF=9C]=202021=E5=B9=B412=E6=9C=881?= =?UTF-8?q?=E6=97=A5=E3=83=91=E3=83=96=E3=82=B3=E3=83=A1=E3=81=AE=E5=8F=8D?= =?UTF-8?q?=E6=98=A0=E5=AF=BE=E5=BF=9C=E3=81=AE=E3=83=AD=E3=82=B8=E3=83=83?= =?UTF-8?q?=E3=82=AF=E3=81=AB=E8=AA=A4=E3=82=8A=E3=81=8C=E3=81=82=E3=81=A3?= =?UTF-8?q?=E3=81=9F=E3=81=AE=E3=81=A7=E4=BF=AE=E6=AD=A3=E3=81=99=E3=82=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CalculateCalendarLogic/CalculateCalendarLogic.swift | 6 +++--- .../CalculateCalendarLogicTests.swift | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/CalculateCalendarLogic/CalculateCalendarLogic.swift b/CalculateCalendarLogic/CalculateCalendarLogic.swift index e0d2de5..bedc93a 100644 --- a/CalculateCalendarLogic/CalculateCalendarLogic.swift +++ b/CalculateCalendarLogic/CalculateCalendarLogic.swift @@ -317,7 +317,7 @@ public struct CalculateCalendarLogic { return true case (year, 7, 15...21, .mon) - where 2003 <= year && year != SpecialProvisionYear: + where 2003 <= year && year != SpecialProvisionYear && year != SpecialExtraProvisionYear: return true case (SpecialProvisionYear, 7, 23, _): @@ -332,7 +332,7 @@ public struct CalculateCalendarLogic { //(1).8月11日(2016年から)、(2).8月10日(2020年のみ)、(3).8月8日(2021年のみ ※8月9日振替休日): 山の日 case (year, 8, 11, _) - where year > 2015 && year != SpecialProvisionYear: + where year > 2015 && year != SpecialProvisionYear && year != SpecialExtraProvisionYear: return true case (SpecialProvisionYear, 8, 10, _): @@ -384,7 +384,7 @@ public struct CalculateCalendarLogic { return true case (year, 10, 8...14, .mon) - where year > 1999 && year != SpecialProvisionYear: + where year > 1999 && year != SpecialProvisionYear && year != SpecialExtraProvisionYear: return true case (SpecialProvisionYear, 7, 24, _): diff --git a/CalculateCalendarLogicTests/CalculateCalendarLogicTests.swift b/CalculateCalendarLogicTests/CalculateCalendarLogicTests.swift index cb1c373..7cdc068 100644 --- a/CalculateCalendarLogicTests/CalculateCalendarLogicTests.swift +++ b/CalculateCalendarLogicTests/CalculateCalendarLogicTests.swift @@ -353,16 +353,19 @@ class CalculateCalendarLogicTests: XCTestCase { (2021, 5, 5, true), // 海の日: 2021年7月22日(木曜日) + (2021, 7, 19, false), (2021, 7, 22, true), // スポーツの日: 2021年7月23日(金曜日) (2021, 7, 23, true), - + (2021, 10, 11, false), + // 山の日: 2021年8月8日(日曜日) (2021, 8, 8, true), // 振替休日: 2021年8月9日(月曜日) (2021, 8, 9, true), + (2021, 8, 11, false), // 敬老の日: 2021年9月20日(月曜日) (2021, 9, 20, true), From e3ab75f5c288b1f5d6a3070dcc4f1c212ad3decd Mon Sep 17 00:00:00 2001 From: Fumiya Sakai Date: Sun, 6 Dec 2020 20:53:35 +0900 Subject: [PATCH 08/17] =?UTF-8?q?[=E3=81=9D=E3=81=AE=E4=BB=96=E4=BF=AE?= =?UTF-8?q?=E6=AD=A3=E5=AF=BE=E5=BF=9C]=20MacOSX=E3=81=AE=E3=83=95?= =?UTF-8?q?=E3=83=AC=E3=83=BC=E3=83=A0=E3=83=AF=E3=83=BC=E3=82=AF=E3=81=AE?= =?UTF-8?q?Swift=E3=83=90=E3=83=BC=E3=82=B8=E3=83=A7=E3=83=B3=E3=82=924.2?= =?UTF-8?q?=E3=81=8B=E3=82=895.0=E3=81=B8=E5=A4=89=E6=9B=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- handMadeCalendarAdvance.xcodeproj/project.pbxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/handMadeCalendarAdvance.xcodeproj/project.pbxproj b/handMadeCalendarAdvance.xcodeproj/project.pbxproj index efeb2a6..9b75c28 100644 --- a/handMadeCalendarAdvance.xcodeproj/project.pbxproj +++ b/handMadeCalendarAdvance.xcodeproj/project.pbxproj @@ -723,7 +723,7 @@ SDKROOT = macosx; SKIP_INSTALL = YES; SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; @@ -752,7 +752,7 @@ SDKROOT = macosx; SKIP_INSTALL = YES; SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; - SWIFT_VERSION = 4.2; + SWIFT_VERSION = 5.0; VERSIONING_SYSTEM = "apple-generic"; VERSION_INFO_PREFIX = ""; }; From ec95ed98d97614aa311e90c752577a82473d3867 Mon Sep 17 00:00:00 2001 From: Fumiya Sakai Date: Sun, 6 Dec 2020 21:14:21 +0900 Subject: [PATCH 09/17] =?UTF-8?q?podspec=E3=83=95=E3=82=A1=E3=82=A4?= =?UTF-8?q?=E3=83=AB=E3=81=AE=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CalculateCalendarLogic.podspec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CalculateCalendarLogic.podspec b/CalculateCalendarLogic.podspec index 33e285b..6864580 100644 --- a/CalculateCalendarLogic.podspec +++ b/CalculateCalendarLogic.podspec @@ -1,7 +1,7 @@ Pod::Spec.new do |s| s.name = "CalculateCalendarLogic" s.swift_versions = '5.0' - s.version = "0.3.0" + s.version = "0.4.0" s.summary = "This library CalculateCalendarLogic (sample project name is handMadeCalendarAdvance) can judge a holiday in Japan." s.description = <<-DESC This library 'CalculateCalendarLogic' can judge a holiday in Japan. From 8303686103b868d7f8c5a1769d91b1042d904032 Mon Sep 17 00:00:00 2001 From: Fumiya Sakai Date: Sun, 6 Dec 2020 21:14:49 +0900 Subject: [PATCH 10/17] =?UTF-8?q?README.md/sandbox.md=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 5 ++++- sandbox.md | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index ddd6369..1669700 100644 --- a/README.md +++ b/README.md @@ -105,6 +105,7 @@ Special Thanks to + [econa77](https://twitter.com/econa77): Mac OS 10.10 Support + [essochi](https://github.com/essochi): Ver0.1.7 + [myammm](https://github.com/myammm): Ver0.2.0 ++ [kazuomatz](https://github.com/kazuomatz): Refactoring & Bugfix and more iOS developers. @@ -235,7 +236,9 @@ print("2016年1月1日:\(result)") まだまだ甘い部分があるかもしれませんが、その際はPullRequest等を送っていただければ幸いです。アプリ開発の中でこのサンプルが少しでもお役にたつ事ができれば嬉しい限りです。 ++ 2019.12.02: Xcode12.2への対応/2021年の祝日に関する追加対応/サンプルコード修正等を行いました。 + 2019.06.26: Swift5.0及びXcode10.2.1への対応を行いました。 ++ 2019.01.23: 2019年の祝日に関する追加対応を行いました([kazuomatz](https://github.com/kazuomatz)様)。 + 2018.12.02: Swift4.2及びXcode10への対応を行いました。 + 2018.08.08: 2020年のカレンダーへの対応を行いました([myammm](https://github.com/myammm)様)。 + 2018.07.04: Swift4.1及びXCode9.4への対応を行いました([essochi](https://github.com/essochi)様)。 @@ -251,5 +254,5 @@ print("2016年1月1日:\(result)") ### 謝辞 -このライブラリの作成にあたり[akio0911](https://github.com/akio0911)さん、[akuraru](https://github.com/akuraru)さん、[keygx](https://github.com/keygx)さん、+ [econa77](https://twitter.com/econa77)さんに多くのお力添えを頂きまして誠にありがとうございました。 +このライブラリの作成にあたり[akio0911](https://github.com/akio0911)さん、[akuraru](https://github.com/akuraru)さん、[keygx](https://github.com/keygx)さん、[econa77](https://twitter.com/econa77)さん、[kazuomatz](https://github.com/kazuomatz)さんに多くのお力添えを頂きまして誠にありがとうございました。 また、プルリクエスト等を定期的に頂けることで本当に助かっております。 diff --git a/sandbox.md b/sandbox.md index f252ca8..409f24b 100644 --- a/sandbox.md +++ b/sandbox.md @@ -1,5 +1,11 @@ # 修正履歴 +## 2021年の祝日対応 +- 2021年07月22日 海の日 +- 2021年07月23日 スポーツの日 +- 2021年08月08日 山の日 +- 2021年08月00日 振替休日 + ## 2019年の祝日対応 - 2019年05月01日 天皇の即位の日 - 2019年10月22日 即位礼正殿の儀 From c0410d327d13239b225eb98b40f649459b9ed70a Mon Sep 17 00:00:00 2001 From: Fumiya Sakai Date: Sun, 6 Dec 2020 21:47:19 +0900 Subject: [PATCH 11/17] =?UTF-8?q?[=E8=BF=BD=E5=8A=A0=E5=AF=BE=E5=BF=9C]=20?= =?UTF-8?q?Swift=20Package=20Manager=E5=AF=BE=E5=BF=9C=E3=81=A8README.md?= =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Package.swift | 24 ++++++++++++++++++++++++ README.md | 12 ++++++++++-- 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 Package.swift diff --git a/Package.swift b/Package.swift new file mode 100644 index 0000000..29dcacf --- /dev/null +++ b/Package.swift @@ -0,0 +1,24 @@ +// swift-tools-version:5.3 +// The swift-tools-version declares the minimum version of Swift required to build this package. + +import PackageDescription + +let package = Package( + name: "CalculateCalendarLogic", + products: [ + .library( + name: "CalculateCalendarLogic", + targets: ["CalculateCalendarLogic"]), + ], + dependencies: [], + targets: [ + .target( + name: "CalculateCalendarLogic", + path: "CalculateCalendarLogic", + dependencies: []), + .testTarget( + name: "CalculateCalendarLogicTests", + dependencies: ["CalculateCalendarLogic"]), + ], + swiftLanguageVersions: [.v5] +) diff --git a/README.md b/README.md index 1669700..b1978ce 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ public func judgeJapaneseHoliday(year: Int, month: Int, day: Int) -> Bool { ### Installation -We can use this library with CocoaPods, Carthage, Manually. +We can use this library with CocoaPods, Carthage, Swift Package Manager, Manually. ##### Use CocoaPods @@ -60,6 +60,10 @@ Create Carthage and specify it in your Cartfile: github "fumiyasac/handMadeCalendarAdvance" ``` +##### Use Swift Package Manager + +Using Xcode, go to File -> Swift Packages -> Add Package Dependency and enter https://github.com/fumiyasac/handMadeCalendarAdvance + ##### Manually Copy all the files in CalculateCalendarLogic/CalculateCalendarLogic.swift file into your project. @@ -155,7 +159,7 @@ public func judgeJapaneseHoliday(year: Int, month: Int, day: Int) -> Bool { ### 導入方法 -このライブラリはCocoaPods・Carthage及び手動での追加に対応しています。 +このライブラリはCocoaPods・Carthage・Swift Package Manager及び手動での追加に対応しています。 ##### CocoaPodsでの追加 @@ -182,6 +186,10 @@ github "fumiyasac/handMadeCalendarAdvance" 参考:[Carthageを使った外部ライブラリ導入方法](http://swift.swift-studying.com/entry/2015/09/23/215356) +##### Swift Package Managerでの追加 + +お使いのXcodeで、「File -> Swift Packages -> Add Package Dependency」と進み、「https://github.com/fumiyasac/handMadeCalendarAdvance」を追加して下さい。 + ##### 手動での追加 また手動でライブラリファイルを追加する場合には、`CalculateCalendarLogic.swift`ファイルをご自身のプロジェクトに追加して下さい。 From 141cfd0d5246a6fa98997753c3078e0daa0e449e Mon Sep 17 00:00:00 2001 From: Fumiya Sakai Date: Sun, 6 Dec 2020 21:50:07 +0900 Subject: [PATCH 12/17] =?UTF-8?q?[=E8=BF=BD=E5=8A=A0=E5=AF=BE=E5=BF=9C]=20?= =?UTF-8?q?README.md=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index b1978ce..faada2f 100644 --- a/README.md +++ b/README.md @@ -62,7 +62,8 @@ github "fumiyasac/handMadeCalendarAdvance" ##### Use Swift Package Manager -Using Xcode, go to File -> Swift Packages -> Add Package Dependency and enter https://github.com/fumiyasac/handMadeCalendarAdvance +Using Xcode, go to File -> Swift Packages -> Add Package Dependency and enter URL below: +https://github.com/fumiyasac/handMadeCalendarAdvance ##### Manually @@ -188,7 +189,8 @@ github "fumiyasac/handMadeCalendarAdvance" ##### Swift Package Managerでの追加 -お使いのXcodeで、「File -> Swift Packages -> Add Package Dependency」と進み、「https://github.com/fumiyasac/handMadeCalendarAdvance」を追加して下さい。 +お使いのXcodeで、「File -> Swift Packages -> Add Package Dependency」と進み、下記URLを追加して下さい。 +https://github.com/fumiyasac/handMadeCalendarAdvance ##### 手動での追加 From e493096a7a952a52c6042c89f0a201d1c65a9397 Mon Sep 17 00:00:00 2001 From: Fumiya Sakai Date: Sun, 6 Dec 2020 21:52:43 +0900 Subject: [PATCH 13/17] =?UTF-8?q?[=E8=BF=BD=E5=8A=A0=E5=AF=BE=E5=BF=9C]=20?= =?UTF-8?q?Package.swift=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Package.swift | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Package.swift b/Package.swift index 29dcacf..038068f 100644 --- a/Package.swift +++ b/Package.swift @@ -10,12 +10,11 @@ let package = Package( name: "CalculateCalendarLogic", targets: ["CalculateCalendarLogic"]), ], - dependencies: [], targets: [ .target( name: "CalculateCalendarLogic", path: "CalculateCalendarLogic", - dependencies: []), + ), .testTarget( name: "CalculateCalendarLogicTests", dependencies: ["CalculateCalendarLogic"]), From c829c88644d55d174b1e8baee757133539bd3976 Mon Sep 17 00:00:00 2001 From: Fumiya Sakai Date: Sun, 6 Dec 2020 21:54:39 +0900 Subject: [PATCH 14/17] =?UTF-8?q?[=E8=BF=BD=E5=8A=A0=E5=AF=BE=E5=BF=9C]=20?= =?UTF-8?q?Package.swift=E4=BF=AE=E6=AD=A3=EF=BC=882=E5=9B=9E=E7=9B=AE?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Package.swift | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Package.swift b/Package.swift index 038068f..a229f60 100644 --- a/Package.swift +++ b/Package.swift @@ -13,11 +13,12 @@ let package = Package( targets: [ .target( name: "CalculateCalendarLogic", - path: "CalculateCalendarLogic", + path: "CalculateCalendarLogic" ), .testTarget( name: "CalculateCalendarLogicTests", - dependencies: ["CalculateCalendarLogic"]), + dependencies: ["CalculateCalendarLogic"] + ) ], swiftLanguageVersions: [.v5] ) From 9a2a4cf37a870aad4d177ac2b6e0009c2150acb0 Mon Sep 17 00:00:00 2001 From: Fumiya Sakai Date: Sun, 6 Dec 2020 21:55:27 +0900 Subject: [PATCH 15/17] =?UTF-8?q?[=E8=BF=BD=E5=8A=A0=E5=AF=BE=E5=BF=9C]=20?= =?UTF-8?q?Package.swift=E4=BF=AE=E6=AD=A3=EF=BC=883=E5=9B=9E=E7=9B=AE?= =?UTF-8?q?=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Package.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Package.swift b/Package.swift index a229f60..ad48299 100644 --- a/Package.swift +++ b/Package.swift @@ -8,7 +8,8 @@ let package = Package( products: [ .library( name: "CalculateCalendarLogic", - targets: ["CalculateCalendarLogic"]), + targets: ["CalculateCalendarLogic"] + ) ], targets: [ .target( From bb3428fa1f6bc923ca0c21530bb7a0664e9f6c59 Mon Sep 17 00:00:00 2001 From: Fumiya Sakai Date: Sun, 6 Dec 2020 22:18:01 +0900 Subject: [PATCH 16/17] =?UTF-8?q?[=E8=BF=BD=E5=8A=A0=E5=AF=BE=E5=BF=9C]=20?= =?UTF-8?q?README.md=E8=A8=98=E8=BC=89=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index faada2f..c2ae0fc 100644 --- a/README.md +++ b/README.md @@ -189,7 +189,7 @@ github "fumiyasac/handMadeCalendarAdvance" ##### Swift Package Managerでの追加 -お使いのXcodeで、「File -> Swift Packages -> Add Package Dependency」と進み、下記URLを追加して下さい。 +お使いのXcodeで「File -> Swift Packages -> Add Package Dependency」と進み下記URLを入力してEnterキーを押下して下さい。 https://github.com/fumiyasac/handMadeCalendarAdvance ##### 手動での追加 @@ -231,7 +231,7 @@ print("2016年1月1日:\(result)") 現行プログラムでCalculateCalendarLogic.swiftで考慮したテストケースは下記の通りです。 -+ 今年(2016年)の祝祭日の判定が正しく行えていること ++ 今年(2016年〜2022年)の祝祭日の判定が正しく行えていること + ゴールデンウィークの判定が正しく行えていること(※サンプル:2017年/2019年/2021年) + シルバーウィークの判定が正しく行えていること(※サンプル:2015年/2026年/2032年) + 春分の日・秋分の日の判定が正しく行えていること(※サンプル:2000年〜2030年) From 2098e76339593463c4977bff1514cded4ada7fac Mon Sep 17 00:00:00 2001 From: Fumiya Sakai Date: Sun, 6 Dec 2020 22:19:17 +0900 Subject: [PATCH 17/17] =?UTF-8?q?[=E8=BF=BD=E5=8A=A0=E5=AF=BE=E5=BF=9C]=20?= =?UTF-8?q?README.md=E8=A8=98=E8=BC=89=E4=BF=AE=E6=AD=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index c2ae0fc..f36ace1 100644 --- a/README.md +++ b/README.md @@ -189,7 +189,7 @@ github "fumiyasac/handMadeCalendarAdvance" ##### Swift Package Managerでの追加 -お使いのXcodeで「File -> Swift Packages -> Add Package Dependency」と進み下記URLを入力してEnterキーを押下して下さい。 +お使いのXcodeで「File -> Swift Packages -> Add Package Dependency」と進み、後述するURLを入力してEnterキーを押下して下さい。 https://github.com/fumiyasac/handMadeCalendarAdvance ##### 手動での追加