2017-08-16 21 views
0

私の要件はです。開始日と終了日はです。私が検索していると私は答えのトンを発見したが、1つは、私は以下のコードを発見したスレッドのいずれかをuse.Inするのが最善です混乱していると:Javaを使用して週の開始日と終了日を取得します

Calendar c = Calendar.getInstance(); 
    c.setTime(new Date("8/16/2017")); 
    int dayOfWeek = c.get(Calendar.DAY_OF_WEEK); 
    System.out.println("day :" + dayOfWeek); 
    c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek()); 
    System.out.println("start of week day :" + c.getTime()); 

は出力:

day :4 
start of week day :Sun Aug 13 00:00:00 EDT 2017 

私はバグを参照してください上記のコード出力にあります。週の始まりは8月14日の月曜日でなければならないが、それはSun Aug13を示す。日付が文字列として動的に渡されるときの開始日と終了日を取得するための提案。

--EDITED-- 私が探しているのは日付を過ぎた曜日と曜日の最終日のを返すjavaコードです。 2.

ラインのように月曜日に週の最初の曜日を設定し

+3

日曜日になりますカレンダーの週の最初の日です。 – drelliot

+0

https://stackoverflow.com/questions/11858565/how-to-set-first-day-of-week-in-a-java-application-calendar –

+0

私は最初の日と最後の日の両方を探しています日付が渡された週。 – scrit

答えて

3
import java.time.LocalDate; 

import static java.time.DayOfWeek.MONDAY; 
import static java.time.DayOfWeek.SUNDAY; 
import static java.time.temporal.TemporalAdjusters.nextOrSame; 
import static java.time.temporal.TemporalAdjusters.previousOrSame; 

public class FirstAndLast 
{ 
    public static void main(String[] args) 
    { 
    LocalDate today = LocalDate.now(); 

    LocalDate monday = today.with(previousOrSame(MONDAY)); 
    LocalDate sunday = today.with(nextOrSame(SUNDAY)); 

    System.out.println("Today: " + today); 
    System.out.println("Monday of the Week: " + monday); 
    System.out.println("Sunday of the Week: " + sunday); 
    } 
} 
+0

はい、余分な依存関係を追加する必要があります。 – Akash

1
Calendar c = Calendar.getInstance(); 
    c.setFirstDayOfWeek(Calendar.MONDAY); //Line2 
    c.setTime(new Date("8/16/2017")); 
    int dayOfWeek = c.get(Calendar.DAY_OF_WEEK); 
    System.out.println("day :" + dayOfWeek); 
    c.set(Calendar.DAY_OF_WEEK, c.getFirstDayOfWeek()); 
    System.out.println("start of week day :" + c.getTime()); 

今、出力は

day :4 
start of week day :Mon Aug 14 00:00:00 EDT 2017 
関連する問題