2017-02-14 9 views
-1

私は失敗した試行でほぼ一週間を過ごしました。今月の最終日を取得するにはどうしたらいいですか?たとえば、非閏年の2月の場合は、月の最終日は28日でなければなりません。「28」はどのように取得しますか?もう一つの例:それは1月であれば、最後の日付が「31」月の最後の日付を取得する方法

+0

をC#またはvb.netでは、私は単純に現在の月を取得し、その月の1日のための新しい日付を作る:範囲からの最後の日を取得し、それに応じてコンポーネントを設定するrange(of:in:for:)を使用してください。それから私は1日を引いて、その月の最後の日を得る。 –

答えて

5

でなければならない多くの方法がここにありますが、これらの2つです:

は、次の1を取得し、1日

func lastDayOfMonth1() -> Date 
{ 
    let calendar = Calendar.current 
    let components = DateComponents(day:1) 
    let startOfNextMonth = calendar.nextDate(after:Date(), matching: components, matchingPolicy: .nextTime)! 
    return calendar.date(byAdding:.day, value: -1, to: startOfNextMonth)! 
} 

print(lastDayOfMonth1()) 

を引きます

func lastDayOfMonth2() -> Date 
{ 
    let calendar = Calendar.current 
    let now = Date() 
    var components = calendar.dateComponents([.year, .month, .day], from: now) 
    let range = calendar.range(of: .day, in: .month, for: now)! 
    components.day = range.upperBound - 1 
    return calendar.date(from: components)! 
} 

print(lastDayOfMonth2()) 
関連する問題