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:)
を使ってください。