Last active
February 6, 2019 15:53
-
-
Save Zedd0202/9aa9fbecd53f5ec284cbc9f27ec7a2a7 to your computer and use it in GitHub Desktop.
Swift Date & Time
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// | |
// 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