Skip to content

Instantly share code, notes, and snippets.

@yycking
yycking / string~=.swift
Last active March 29, 2021 07:19
~= operator for String
import Cocoa
import Foundation
extension String {
static func ~= (lhs: String, rhs: String) -> Bool {
if lhs == rhs {
return true
}
if let range = rhs.range(of: lhs, options: .regularExpression) {
return rhs[range] == rhs
@yycking
yycking / fetchAll.swift
Created December 25, 2020 06:29
fetch all link from request
import Foundation
import PlaygroundSupport
import Combine
PlaygroundPage.current.needsIndefiniteExecution = true
enum RequestError: Error {
case sessionError(error: Error)
}
@yycking
yycking / DateFormatter.swift
Last active August 19, 2023 09:24
list DateFormatter result
import Cocoa
extension DateFormatter.Style {
static public var allCases: [DateFormatter.Style] = [
.none,
.short,
.medium,
.long,
.full,
]
@yycking
yycking / TimeZone+localizedString.swift
Last active August 9, 2022 03:27
swift TimeZone list like setting
import Cocoa
let formatter = DateFormatter()
formatter.dateStyle = .long
formatter.dateFormat = "(O) VVV"
formatter.locale = Locale(identifier: "zh")
TimeZone.knownTimeZoneIdentifiers
.compactMap(TimeZone.init(identifier:))
.map { timeZone -> String in
[
{
"User_na": "A",
"Total": "a",
"Scene_No": "1"
},
{
"User_na": "B",
"Total": "b",
"Scene_No": "2"
@yycking
yycking / date+localizedString.swift
Last active February 7, 2020 08:47
Swift DateFormat like apple mail
import Cocoa
extension Calendar {
func isDateIn7days(from date: Date) -> Bool {
let date1 = self.startOfDay(for: Date())
let date2 = self.startOfDay(for: date)
let days = (date1 - date2).day ?? 0
return days <= 8 && days > 0
}
@yycking
yycking / md.html
Created November 20, 2019 05:15
MarkDown+HTML. Copycat from Strapdown.js
<!DOCTYPE html>
<html>
<head>
<title>Strapdown.js - Instant and elegant Markdown documents</title>
<!-- 🌙 Dark theme-->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/kognise/water.css@latest/dist/dark.min.css">
<link rel="stylesheet" href="https://raw.githack.com/google/code-prettify/master/styles/desert.css">
<!-- 🌞 Light theme-->
<!-- <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/kognise/water.css@latest/dist/light.min.css"> -->
</head>
@yycking
yycking / tts.swift
Created November 14, 2019 07:16
AVSpeechSynthesisVoice test
//: A Cocoa based Playground to present user interface
import AVFoundation
let voices = AVSpeechSynthesisVoice.speechVoices().reduce([String:[AVSpeechSynthesisVoice]]()) { (result, voice) -> [String:[AVSpeechSynthesisVoice]] in
var voices = result
let locale = Locale(identifier: voice.language)
let code = locale.localizedString(forLanguageCode: locale.languageCode!) ?? "??"
var voiceOnLanguage = voices[code] ?? []
voiceOnLanguage.append(voice)
voices[code] = voiceOnLanguage
@yycking
yycking / countryCode2EmojiFlag.swift
Last active November 14, 2019 07:17
convert country code to emoji flag
extension Locale {
var flagCode: String {
guard let country = self.regionCode else {return "🌐"}
let base : UInt32 = 127397
let code = country.unicodeScalars.compactMap{UnicodeScalar(base + $0.value)}
return String(String.UnicodeScalarView(code))
}
}
@yycking
yycking / drawText.swift
Last active May 20, 2019 08:31
手寫字
var charLayers = [CAShapeLayer]()
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(animated)
for layer in self.charLayers {
layer.removeFromSuperlayer()
}
let stringAttributes = [ NSAttributedString.Key.font: UIFont(name: "Zapfino", size: 32.0)! ]