Skip to content

Instantly share code, notes, and snippets.

@Zedd0202
Last active February 6, 2019 15:53
Show Gist options
  • Save Zedd0202/9aa9fbecd53f5ec284cbc9f27ec7a2a7 to your computer and use it in GitHub Desktop.
Save Zedd0202/9aa9fbecd53f5ec284cbc9f27ec7a2a7 to your computer and use it in GitHub Desktop.
Swift Date & Time
//
// MyCalender.swift
// date
//
// Created by woowabrothers on 2017. 7. 11..
// Copyright © 2017년 woowabrothers. All rights reserved.
//
import Foundation
class MyCalendar {
func CurrentData() -> (Int,Int,Int,Int,Int,Int)
{
let date = Date()
let calendar = Calendar.current
let year = calendar.component(.year, from: date)
let month = calendar.component(.month, from: date)
let day = calendar.component(.day, from: date)
let hour = calendar.component(.hour, from: date)
let minutes = calendar.component(.minute, from: date)
let seconds = calendar.component(.second, from: date)
return (year,month,day,hour,minutes,seconds)
}
func createDateInstance(str: String)-> Date{
TimeZone.ReferenceType.default = TimeZone(abbreviation: "GMT")!
var dfmatter = DateFormatter()
dfmatter.dateFormat="yyyy-MM-dd"
dfmatter.timeZone = TimeZone.ReferenceType.default
var date = dfmatter.date(from: str)
var dateStamp:TimeInterval = date!.timeIntervalSince1970
return date!
}
func returnDateInstance(year:Int,month:Int, day:Int)->Date{
// var c = NSDateComponents()
// c.year = year
// c.month = month
// c.day = day
// var date = NSCalendar(identifier: NSCalendar.Identifier.gregorian)?.date(from: c as DateComponents)
// return date!
TimeZone.ReferenceType.default = TimeZone(abbreviation: "GMT")!
let str = String(year)+", "+String(month)+", "+String(day)
let formatter = DateFormatter()
formatter.dateFormat = "yyyy, MM, dd"
formatter.timeZone = TimeZone.ReferenceType.default
let yourDate: Date? = formatter.date(from: str)
return yourDate!
}
func dateToKo(date:Date)->String
{
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let myString = formatter.string(from: date)
let yourDate: Date? = formatter.date(from: myString)
formatter.dateFormat = "yyyy년 MM월 dd일"
let updatedString = formatter.string(from: yourDate!)
return updatedString
}
func getDayOfWeek(weekday:Int) -> String {
if(weekday == 1) {
return "Sunday"
}
else if(weekday == 2) {
return "Monday"
}
else if(weekday == 3) {
return "Tuesday"
}
else if(weekday == 4) {
return "Wednesday"
}
else if(weekday == 5) {
return "Thursday"
}
else if(weekday == 6) {
return "Friday"
}
else {
return "Saturday"
}
}
func fineToFirst(years: Int, months:Int)-> String{
var str = String(years)+"-"+String(months)
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM"
let yourDate: Date? = formatter.date(from: str)
let weekday = Calendar.current.component(.weekday, from: yourDate!)
var weekdayName = self.getDayOfWeek(weekday: weekday)
return weekdayName
}
func returnTwoDimension(years: Int, months:Int) ->[[Int]]
{
var str = String(years)+"-"+String(months)
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM"
let yourDate: Date? = formatter.date(from: str)
let dateComponents = DateComponents(year: years, month: months)
let calendar = Calendar.current
let date = calendar.date(from: dateComponents)!
let range = calendar.range(of: .day, in: .month, for: date)!
let numDays = range.count
print(numDays) // 31
var wholeArray=[[Int]]()
var arr = [Int]()
let weekday = Calendar.current.component(.weekday, from: yourDate!)
// var weekdayName = self.getDayOfWeek(weekday: weekday)
print(weekday)
var wholArray = [[Int]]()
var a = 8-weekday
for var i in 1...a{
arr.append(i)
}
wholeArray.append(arr)
arr = []
var cnt = 1
for var i in a+1...numDays
{
if cnt%7==0
{
arr.append(i)
wholeArray.append(arr)
arr = []
cnt+=1
}
else{
arr.append(i)
cnt+=1
}
}
wholeArray.append(arr)
return wholeArray
}
func currentMyFormat()->String
{
let formatter = DateFormatter()
formatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let myString = formatter.string(from: Date())
let yourDate: Date? = formatter.date(from: myString)
formatter.dateFormat = "yyyy년도.. MM월.. dd일..HH시..mm분...ss초.."
let updatedString = formatter.string(from: yourDate!)
return updatedString
}
func createTimestamp(str :String)->Date{
var dfmatter = DateFormatter()
dfmatter.dateFormat="yyyy/MM/dd"
var date = dfmatter.date(from: str)
var dateStamp:TimeInterval = date!.timeIntervalSince1970
return date!
}
func createTimestamp2(num: Int)->Int{
var dfmatter = DateFormatter()
dfmatter.dateFormat="yyyy, MM, dd"
var date = dfmatter.date(from: String(num))
var dateStamp:TimeInterval = date!.timeIntervalSince1970
var dateSt:Int = Int(dateStamp)
return dateSt
}
func returnDateInstanceforKo(year:Int,month:Int, day:Int)->String{
let str = String(year)+", "+String(month)+", "+String(day)
let formatter = DateFormatter()
formatter.dateFormat = "yyyy, MM, dd"
let yourDate: Date? = formatter.date(from: str)
formatter.dateFormat = "yyyy년 MM월 dd일"
let updatedString = formatter.string(from: yourDate!)
return updatedString
}
}
import Foundation
//print("Hello, World!")
var a = MyCalendar()
//MARK:오늘 날짜의년,월,일,시,분,초Int를 튜플로 묶어서 리턴하는 함수
print(a.CurrentData())
//MARK:년월일 날짜를 문자열로 입력하면 Date 인스턴스를 리턴하는 함수 print(a.createDateInstance(str: "2017-02-01"))
//MARK:특정 년도, 월, 일을 Int로 입력하면 Date 인스턴스를 리턴하는 함수,1998,12,25 숫자로 Date 인스턴스를 만들어서 timestamp를 출력하세요
print(a.returnDateInstance(year: 1998, month: 12, day: 25))
//MARK:날짜 Date 인스턴스를 입력하면 한국식 날짜 표기로 문자열을 리턴하는 함수
print(a.dateToKo(date: Date()))
//MARK:날짜 Date 인스턴스를 입력하면 한국식 날짜 표기로 문자열을 리턴하는 함수
print(a.currentMyFormat())
//MARK:특정 년도와 특정 달을 입력하면 1일의 요일을 찾는 함수, 2010년 1월달 1일의 요일을 출력하세요
print(a.fineToFirst(years: 2010, months: 1))
//MARK:특정 년도와 특정 달을 입력하면 일자를 주단위로 배열에 넣고, 주단위 배열을 다시 배열에 넣어 2차원 배열로 리턴하는 함수, 2010년 4월달을 2차원 배열로 출력하세요
print(a.returnTwoDimension(years: 2010, months: 4))
//MARK:오늘 날짜(년, 월, 일, 시, 분, 초 숫자)를 자신만의 형식으로 출력하세요
print(a.currentMyFormat())
//MARK:“2016/04/16” 문자열로 Date 인스턴스를 만들어서 timestamp를 출력하세요
print(a.createTimestamp(str: "2016/04/16"))
//MARK: 바로 위 1998년 12월 25일을 한국식 날짜 표기로 문자열로 출력하세요
print(a.returnDateInstanceforKo(year: 1998, month: 12, day: 25))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment