🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
date

dateは、date型や日付に関する関数や処理についてのタグです

Swift

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

Q&A

2回答

756閲覧

時刻の値を計算して曜日を知りたい

pontenton

総合スコア7

date

dateは、date型や日付に関する関数や処理についてのタグです

Swift

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

0グッド

0クリップ

投稿2019/12/19 09:09

編集2019/12/19 09:44
swift let date = Date() let format = DateFormatter() format.dateFormat = "yyyy-MM-dd HH:mm" format.timeZone = TimeZone(identifier: "Asia/Tokyo") print( "現在時刻: ", format.string(from: date) ) //年数の計算 let zellerCongruence = { (year: Int, month: Int, day: Int) in (year + year/4 - year/100 + year/400 + (13 * month + 8)/5 + day) % 7 } //曜日を求める関数 func dayOfWeek(_ year: Int, _ month: Int, _ day: Int) -> Int { var year = year var month = month if month == 1 || month == 2 { year -= 1 month += 12 } return zellerCongruence(year, month, day) } let dayOfweek = dayOfWeek(2019,1,1)//ここに値を代入したい print(dayOfweek)

ここに代入したいというところにdateのyyyy,MM,ddを入れて現在の年数と日付から曜日を習得したいです。

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

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

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

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

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

eytyet

2019/12/19 09:24

```は独立した行になるように書いてください。```の後に改行を入れ、```だけの行になるようにしてください。前後ともです。そうするととても読みやすくなります。
y_waiwai

2019/12/19 09:43

このままではコードが読めないので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
MasakiHori

2019/12/20 02:29

y_waiwaiさんへのコメントを読みましたが、これはXY問題ではないですか? 「任意の日付のDateから2週間後のDateを取得する方法」が求めるものですか?
fuzzball

2019/12/20 04:09

現在のコードで何が問題なのか教えて下さい。(正しく求められているように見えますが)
guest

回答2

0

投げ捨てる実装ならこんなのでいいのでは?

swift

1func dayOfWeek(_ year: Int, _ month: Int, _ day: Int) -> Int { 2 3 let comp = DateComponents(calendar: .current, 4 year: year, 5 month: month, 6 day: day) 7 guard let date = comp.date else { fatalError("Invalid arguments") } 8 9 return Calendar.current.component(.weekday, from: date) 10} 11 12print(dayOfWeek(2019, 12, 20))

投稿2019/12/20 02:10

MasakiHori

総合スコア3391

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

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

0

投稿2019/12/19 09:48

y_waiwai

総合スコア88038

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

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

pontenton

2019/12/19 09:59

そのサイトを見ましたがどこをどういじればDate型になるか分かりません エラーばかりです
y_waiwai

2019/12/19 10:02

Dateを使わずに曜日を求める、という課題ならアレですが、 そうでないなら、そのエラーばかり出るというコードを提示してみてはどうでしょう
pontenton

2019/12/19 10:29

2週間に1回出力したい文があってdateだけじゃできないと思い、下の計算をして出力したいんですよね。 僕がやろうとしてることって変ですか?
y_waiwai

2019/12/19 11:15

西暦1年1月1日からの通算日数を出して、そいつを7で割った余りを出せば曜日が出ます。 この通算日数を出す方法はネットを探すとコードとともに出てきますんでそれを参考にしてはどうでしょう ざっと見た限りでは、月の日数が28,29と30と31とある区別がついてないように見受けられます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問