Instance Method インスタンスメソッド

date(bySetting:value:of:)

Returns a new Date representing the date calculated by setting a specific component to a given time, and trying to keep lower components the same. If the component already has that value, this may result in a date which is the same as the given date. 特定の構成要素をある与えられた時間に設定し、そしてより低い構成要素を同じに保つよう試みることによって計算される日付を表している新しいDateを返します。構成要素が既にその値を持つならば、これはその与えられた日付と同じ日付という結果になるでしょう。

Declaration 宣言

func date(bySetting component: Calendar.Component, value: Int, of date: Date) -> Date?

Discussion 議論

Changing a component’s value often will require higher or coupled components to change as well. For example, setting the Weekday to Thursday usually will require the Day component to change its value, and possibly the Month and Year as well. If no such time exists, the next available time is returned (which could, for example, be in a different day, week, month, … than the nominal target date). Setting a component to something which would be inconsistent forces other components to change; for example, setting the Weekday to Thursday probably shifts the Day and possibly Month and Year. The exact behavior of this method is implementation-defined. For example, if changing the weekday to Thursday, does that move forward to the next, backward to the previous, or to the nearest Thursday? The algorithm will try to produce a result which is in the next-larger component to the one given (there’s a table of this mapping at the top of this document). So for the “set to Thursday” example, find the Thursday in the Week in which the given date resides (which could be a forwards or backwards move, and not necessarily the nearest Thursday). For more control over the exact behavior, use nextDate(after:matching:matchingPolicy:behavior:direction:). ある構成要素の値を変えることは、しばしばより高位のまたは結びつけて考えられる構成要素もまた変更する必要があります。例えば、「曜日」を「火曜日」に設定することは普通は「日」構成要素にそれの値を変更することを要求します、そしてことによると「月」と「年」もまた。そのような時間が存在しないならば、次の利用可能な時間が返されます(それは例えば、名目上の目標日付とは別の日、週、月、...である可能性があります)。ある構成要素を調和しない何か設定することは他の構成要素に変化を強要するでしょう;例えば、「週」を「火曜日」に設定することはおそらくは「日」そしてもしかしたら「月」と「年」をずらします。このメソッドの正確な挙動は、実装定義です。例えば、曜日を「木曜日」に変更することは、次へと将来に、前へと過去に、または近い方の「木曜日」へと移動を行うでしょうか?アルゴリズムは、与えられたものの次に大きな構成要素の中にある結果を生み出そうと試みます(このマッピングの表がこの文書の上部にあります)。それで “set to Thursday” 例に対して、与えられた日付が在する「週」の中に「火曜日」を見つけます(それは未来または過去に移動できます、そして必ずしも最も近い「火曜日」ではありません)。さらに正確な挙動を管理するために、nextDate(after:matching:matchingPolicy:behavior:direction:)を使ってください。

See Also 参照

Calculating Dates from Components 構成要素から日付を計算する