import Foundation
//#2 연, 월, 일 을 입력하여 요일을 영문으로 출력하는 코드
/**
- Parameters:
- year: 입력된 해의 값을 할당받은 매개변수
- month: 입력된 달의 값을 할당받은 매개변수
- day: 입력된 날의 값을 할당받은 매개변수
**/
func calDayOfWeek(_ year: Int, _ month: Int, _ day: Int) -> String {
let weekArray = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"] // 요일 배열
// date 포맷 선언
let date = DateFormatter()
date.locale = Locale(identifier: "ko_kr")
date.dateFormat = "yyyy-MM-dd"
let inputDate = date.date(from: "\(year)-\(month)-\(day)") // 입력받은 날짜 date 설정
let cal = Calendar(identifier: .gregorian) // 그레고리 캘린더 선언
let comps = cal.dateComponents([.weekday], from: inputDate!) // 입력 받은 날짜 캘린더 형식으로 변환
return weekArray[comps.weekday! - 1] // 요일 반환
}
//print("날짜를 입력하세요. ex)2019년 8월 14일 -> 2019 8 14")
// 입력값에서 " "로 분할해 inputDay라는 Array생성
//let inputDay = readLine()!.split(separator: " ").map {
// Int(String($0))!
//}
//print(calDayOfWeek(inputDay[0], inputDay[1], inputDay[2]))
//----------------------------------------------------- 정상코드
// 반복문을 위해 inputDay를 따로 분리 해서 ArrayDate라는 Array 생성
func Input() {
print("날짜를 입력하세요. ex)2019년 8월 14일 -> 2019 8 14")
let inputDay = readLine()
let ArrayDate = inputDay!.split(separator: " ").map {
Int(String($0))!
}
// 띄어쓰기를 적게했을 때 에러
if ArrayDate.count<3 {
print("잘못된 입력입니다. 다시 입력해주세요")
Input()
// 띄어쓰기를 많이했을 때 에러
} else if ArrayDate.count>3 {
print("잘못된 입력입니다. 다시 입력해주세요")
Input()
} else {
print(calDayOfWeek(ArrayDate[0], ArrayDate[1], ArrayDate[2]))
Input()
}
}
Input()
//inputDay 배열의 번호를 지정해서 calDayOfWeek 함수에 넣어 출력하기
// 생성되는 Array의 형태 "YYYY MM DD" -> [2023, 12, 5]
//
//
//- Parameters:
// - inputDay: 사용자로부터 입력받은 날짜를 담은 상수
// - getInputDay: 옵셔널 String값을 일반 String으로 변환할 상수
// - divDayArr: 공백으로 날짜를 나누어 저장할 String타입의 배열
// - divDayArrInt: String배열의 값을 Int타입으로 저장할 상수
//*/
//print("날짜를 입력하세요. ex)2019년 8월 22일 -> 2019 8 22")
//let inputDay = readLine()
//
//if isValidInputDate(inputDay!) == false {
// print("숫자만 입력해 주세요")
//} else {
// if let getInputDay = inputDay {
//
// // 공백으로 나누어 String 형태의 배열에 저장
// let divDayArr = getInputDay.components(separatedBy: " ")
//
// // 값이 하나만 입력 될 경우
// if divDayArr.count != 3 {
// print("YYYY MM DD 과 같은 형태로 입력해 주세요.")
// } else {
// // map메소드 이용하여 String값을 Int로
// let divDayArrInt: [Int] = divDayArr.map{ Int($0)! }
//
// // 입력받은 값으로 요일 구하는 함수 호출
// print(getDayWithInputs(divDayArrInt[0], divDayArrInt[1], divDayArrInt[2]))
// }
// }
//}
//
////#2 연, 월, 일 을 입력하여 요일을 영문으로 출력하는 코드
//
///**
// - Parameters:
// - year: 입력된 해의 값을 할당받은 매개변수
// - month: 입력된 달의 값을 할당받은 매개변수
// - day: 입력된 날의 값을 할당받은 매개변수
//**/
//func calDayOfWeek(_ year: Int, _ month: Int, _ day: Int) -> String {
// let weekArray = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"] // 요일 배열
//
// // date 포맷 선언
// let date = DateFormatter()
// date.locale = Locale(identifier: "ko_kr")
// date.dateFormat = "yyyy-MM-dd"
//
// let inputDay = date.date(from: "\(year)-\(month)-\(day)") // 입력받은 날짜 date 설정
// let cal = Calendar(identifier: .gregorian) // 그레고리 캘린더 선언
// let comps = cal.dateComponents([.weekday], from: inputDay!) // 입력 받은 날짜 캘린더 형식으로 변환
//
// return weekArray[comps.weekday! - 1] // 요일 반환
//}
//
//
//print("날짜를 입력하세요. ex)2019년 8월 14일 -> 2019 8 14")
//
//// 입력값에서 " "로 분할해 inputDay라는 Array생성
//let inputDay = readLine()!.split(separator: " ").map {
// Int(String($0))!
//}
//
////inputDay 배열의 번호를 지정해서 calDayOfWeek 함수에 넣어 출력하기
//print(calDayOfWeek(inputDay[0], inputDay[1], inputDay[2]))
//
////#1 2019년 고정값으로 월, 일 을 입력하여 요일을 영문으로 출력하는 코드
//func calDayOfWeek(_ a:Int, _ b:Int) -> String {
// let weekArray = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"] // 요일 배열
//
// // date 포맷 선언
// let date = DateFormatter()
// date.locale = Locale(identifier: "ko_kr")
// date.dateFormat = "yyyy-MM-dd"
//
// // 2019년 고정
// let inputDay = date.date(from: "2019-\(a)-\(b)") // 입력받은 날짜 date 설정
// let cal = Calendar(identifier: .gregorian) // 그레고리 캘린더 선언
// let comps = cal.dateComponents([.weekday], from: inputDay!) // 입력 받은 날짜 캘린더 형식으로 변환
//
// return weekArray[comps.weekday! - 1] // 요일 반환
//
//}
//
////테스트용 고정값
////print(solution(12, 9))
////"THU"
//
//
//print("날짜를 입력하세요. ex)2019년 8월 14일 -> 8 14")
//
//let inputDay = readLine()!.split(separator: " ").map {
// Int(String($0))!
//}
//
////inputDay 배열의 번호를 지정해서 calDayOfWeek 함수에 넣어 출력하기
//print(calDayOfWeek(inputDay[0], inputDay[1])) //
// 윤년 계산하는 함수
// 윤년 : 아래의 조건 2가지를 모두 만족해야함
// 조건1: 4로 나누어 떨어짐
// 조건2: 400으로 나누어 떨어짐
// 조건3: 100으로 나누어 떨어지지 않아야함.
//
//윤년계산 함수 작성
//func checkLeap(year: Int) -> Bool {
// var checkValue: Bool = false
// if ((year % 4 == 0 && year % 100 != 0) && year % 400 == 0){ //
// checkValue = true
// print("\(year)년은 윤년이다")
// }else {
// checkValue = false
// print("\(year)년은 평년이다")
//
// }
// return checkValue
//}
//
//print(checkLeap(year: 2000))
'모바일앱 > Swift' 카테고리의 다른 글
중첩함수 보충 (0) | 2021.12.16 |
---|---|
옵셔널 바인딩 보충 (0) | 2021.12.16 |
[알고리즘] 최대공약수와 최소공배수 구하기 (0) | 2021.12.16 |
[알고리즘] 연, 월, 일 을 입력하여 요일을 영문으로 출력하는 코드만들기 (0) | 2021.12.12 |
structures and Classes (+ enum) (0) | 2021.12.09 |
Loops (반복문) (0) | 2021.12.08 |
조건문(IF, Switch) (0) | 2021.12.08 |
Enumeration (열거형) (0) | 2021.12.08 |