Skip to content

Latest commit

 

History

History
149 lines (107 loc) · 5.45 KB

File metadata and controls

149 lines (107 loc) · 5.45 KB

SwiftyHolidayUtil

Version License Platform

概要

SwiftyHolidayUtilは、土曜日・日曜日・祝日をハイライトするライブラリーです。

サンプルプログラム

サンプルプロジェクトを実行するには、Exampleディレクトリーで pod installを実行します。

要件

  • Swit 4.2

インストール方法

CocoaPodsで使用する場合は、.PodFileに以下を記述します。

pod 'SwiftyHolidayUtil'

使用方法

UILabelのExtensionで実装しているため、簡単に使用することができます。

import SwiftyHolidayUtil

let label:UILabel = UILabel()
label.frame = CGRect(x: 0, y: 0, width: 200, height: 20)
label.date = Date()

もし、iPhoneの使用言語が英語で地域がアメリカで設定されている場合(en_US)、以下のように表示されます。

2019-01-28 22 36 13

DateStyleの設定

日付のスタイル(SwiftyHolidayUtil.dateStyle)を指定できます。

dateStyle
.short
.medium (default)
.long
.custom(customFormat:String)
label.dateStyle = .short
label.date = Date()

2019-01-28 22 44 20

label.dateStyle = .long
label.date = Date()

2019-01-28 22 46 00

Localeの設定

ロケールの設定が可能です。書式は言語コードに、祝日の判定と、土・日・祝日の色の表示は、地域コード(Regionコード)によって決定されます。

label.locale = Locale(identifier: "ja_JP")
label.dateStyle = .long
label.date = Date()

2019-01-28 22 49 47

label.locale = Locale(identifier: "ja_JP")
label.dateStyle = .mediunm
label.date = Date()

2019-01-28 22 50 36

Options

SwiftyHolidayUtil.holidayFormatOptions

FormatOptionKey value
.holidayColor UIColor or HexString (ex. "#FF0000")
.saturdayColor UIColor or HexString
.sundayColor UIColor or HexString
.weekSymbolType WeekSymbolType.standalone / .short / .veryshort
.weekPosision WeekPosition.head / .tail
.shortWeekPrefix String : dateStyle: .long の場合の接頭辞を指定します。
.shortWeekSuffix String : dateStyle: .long の場合の接尾辞を指定します。
.mediumWeekPrefix String : dateStyle: .medium の場合の接頭辞を指定します。
.mediumWeekSuffix String : dateStyle: .medium の場合の接尾辞を指定します。
.longWeekPrefix String : dateStyle: .long の場合の接頭辞を指定します。
.longWeekSuffix String : dateStyle: .long の場合の接尾辞を指定します。
.timeStyle TimeStyle.long / .medium / .short / .none(default) / .full / .custom(customFormat: String)
label.locale = Locale(identifier: "ja_JP")
label.dateStyle = .mediunm
label.holidayFormatOptions = [
            .holidayColor: "#077705",
            .mediumWeekPrefix: "",
            .mediumWeekSuffix: "",
            .weekPosision: SwiftyHolidayUtil.WeekPosition.head
        ]
label.date = Date()

2019-01-28 23 41 09

表示色について

日本は土曜日は青、日曜・祝日は赤が慣例ですが、他の国は千差万別だと思います。 リージョン毎で設定できるように作ってあるので、以下のような組み合わせで初期値として実装が可能です。 プルリクください。

  • HolidayUtil+defaulRegionOptions.swift
"JP": [
            FormatOptionKey.saturdayColor: UIColor.blue,
            FormatOptionKey.sundayColor: UIColor.red,
            FormatOptionKey.holidayColor: UIColor.red
        ]

祝日の判定ロジック

現在は日本の判定ロジック(fumiyasacさんのfumiyasac/handMadeCalendarOfSwift )のみを実装しています。

USと韓国とベトナムの暫定コードを実装していますが、このコードは2019年しか正しく動作しません。 各国の祝日判定のロジックがあれば実装してもらえたらと思います。

Author

kazuomatz, getlasterror@gmail.com

License

SwiftyHolidayUtil is available under the MIT license. See the LICENSE file for more info.