質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

Q&A

解決済

2回答

1482閲覧

swift カレンダー

tosi_1211

総合スコア138

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

0グッド

0クリップ

投稿2016/10/09 08:37

編集2016/10/09 14:24

swift でカレンダーを作りたいのですが、
調べてみたところObjective-Cでのカレンダー作成がほとんどでSwiftで出来るのかわかりません。

2015年9月から,現在の2016年10月まで

2015年9月, 2015年10月,2015年11月,2015年12月,2016年1月,

次の月になると自動的に増えていく仕組みを作りたいです。 こんなことは可能でしょうか? ![イメージ説明](32677cdd547ea9e1f3b25d528e9daff5.png)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

ベストアンサー

年と月の情報と言いましても、最初の日は何曜日だとか、その月は何日あるのかなど、いろいろありまして、まあとりあえず、曜日を求める関数と月の日数を求める関数をさっとかいてみました。これで、その月はどこからどこまで日を入れていけばいいのかがわかるはずです。その月の最後は次の月から24時間引いて求めました。

Swift3.0

1//日曜(1)~土曜(7)まで 2func weekDayInt(year:Int,month:Int,date:Int) -> Int{ 3 let current = Calendar.current 4 let formatter = DateFormatter() 5 formatter.dateFormat = "YY/MM/dd" 6 let date1:Date = formatter.date(from: "\(year)/\(month)/\(date)")! 7 var component = (current as NSCalendar).components(NSCalendar.Unit.weekday, from: date1) 8 return component.weekday! 9} 10 11weekDayInt(year: 2016, month: 10, date: 10)//月曜日なので2 12 13//指定した月の日数を求める 14func numberOfDay(year:Int,month:Int) -> Int{ 15 let calender = Calendar.current 16 let formatter = DateFormatter() 17 formatter.dateFormat = "YY/MM/dd" 18 19 var nextMonthFirstDate:Date? 20 21 //来月の最初の日 22 if month != 12{ 23 nextMonthFirstDate = formatter.date(from: "\(year)/\((month+1))/\(1)")! 24 }else{ 25 //13月は次の年の1月に直す 26 nextMonthFirstDate = formatter.date(from: "\(year+1)/\((1))/\(1)")! 27 } 28 29 //今月の最後の日 30 let thisMonthLastDate:Date = Date(timeInterval: -60*60*24, since: nextMonthFirstDate!) 31 32 //それを具体化 33 let component1 = (calender as NSCalendar).components(NSCalendar.Unit.year, from: thisMonthLastDate).year 34 let component2 = (calender as NSCalendar).components(NSCalendar.Unit.month, from: thisMonthLastDate).month 35 let component3 = (calender as NSCalendar).components(NSCalendar.Unit.day, from: thisMonthLastDate).day 36 37 return component3! 38} 39 40numberOfDay(year: 2016, month: 10)//今月は31まであるから31 41

投稿2016/10/09 21:54

編集2016/10/09 21:55
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

URL
こちらのサイトを見ればUIの部分は実装できるかと思います。あとはデータ管理をちゃんと考えればできるかと思います。具体的にまた何かわからないことがありましたら、また聞いて下さい。

投稿2016/10/09 12:22

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tosi_1211

2016/10/09 15:20

指定した日時、2011年8月から現在の2016年10月までを取得することは出来るでしょうか?年と月の情報だけです
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問