จะได้วันแรกของสัปดาห์ได้อย่างไร ในเมื่อเรารู้วันที่ใดวันหนึ่งในสัปดาห์
ฉันรู้เดือนปัจจุบัน ปีปัจจุบัน และวันที่ปัจจุบันของสัปดาห์ แล้วมีวิธีรู้วันแรกของสัปดาห์ปัจจุบันบ้างไหม
ขอบคุณ
จะได้วันแรกของสัปดาห์ได้อย่างไร ในเมื่อเรารู้วันที่ใดวันหนึ่งในสัปดาห์
ฉันรู้เดือนปัจจุบัน ปีปัจจุบัน และวันที่ปัจจุบันของสัปดาห์ แล้วมีวิธีรู้วันแรกของสัปดาห์ปัจจุบันบ้างไหม
ขอบคุณ
สวัสดีถ้าคุณต้องการวันแรกของสัปดาห์ปัจจุบัน "วันจันทร์"
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, Calendar.MONDAY-calendar.get(Calendar.DAY_OF_WEEK));
Log.w(TAG, "first day of week" + calendar.getTime());
2 หากคุณต้องการวันแรกของสัปดาห์ในวันที่ 20-12-2559
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, 20);
calendar.set(Calendar.MONTH,Calendar.DECEMBER);
calendar.set(Calendar.YEAR,2016);
calendar.add(Calendar.DAY_OF_MONTH,Calendar.MONDAY - calendar.get(Calendar.DAY_OF_WEEK));
Log.w(TAG,"first day of week:"+calendar.getTime());
ฉันหวังว่านี่จะช่วยคุณได้
ลองสิ่งนี้:
// รับวันนี้และเวลาที่ชัดเจนของวัน
Calendar cal = Calendar.getInstance();
cal.set(Calendar.HOUR_OF_DAY, 0); // ! clear would not reset the hour of day !
cal.clear(Calendar.MINUTE);
cal.clear(Calendar.SECOND);
cal.clear(Calendar.MILLISECOND);
// เริ่มต้นสัปดาห์นี้ในหน่วยมิลลิวินาที
cal.set(Calendar.DAY_OF_WEEK, cal.getFirstDayOfWeek());
System.out.println("Start of this week: " + cal.getTime());
System.out.println("... in milliseconds: " + cal.getTimeInMillis());
ข้อมูลอ้างอิง :วิธีรับวันแรก ของสัปดาห์และเดือนปัจจุบัน?
หวังว่านี่อาจช่วยคุณได้!
สวัสดีถ้าคุณต้องการวันแรกของสัปดาห์ปัจจุบัน "วันจันทร์"
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DAY_OF_MONTH, Calendar.MONDAY-calendar.get(Calendar.DAY_OF_WEEK));
Log.w(TAG, "first day of week" + calendar.getTime());
2 หากคุณต้องการวันแรกของสัปดาห์ในวันที่ 20-12-2559
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_MONTH, 20);
calendar.set(Calendar.MONTH,Calendar.DECEMBER);
calendar.set(Calendar.YEAR,2016);
calendar.add(Calendar.DAY_OF_MONTH,Calendar.MONDAY - calendar.get(Calendar.DAY_OF_WEEK));
Log.w(TAG,"first day of week:"+calendar.getTime());
ฉันหวังว่านี่จะช่วยคุณได้
วิธีการสมัยใหม่ใช้คลาส java.time แทนที่จะเป็นคลาส Calendar
& Date
แบบเก่าที่ยุ่งยาก
LocalDate.of( 2017 , Month.MARCH , 23 )
.with( TemporalAdjusters.previousOrSame( DayOfWeek.MONDAY ) )
LocalDate
คลาส LocalDate
แสดงถึงวันที่เท่านั้น ค่าที่ไม่มีเวลาของวันและไม่มีเขตเวลา
LocalDate someDate = LocalDate.of( 2017 , Month.MARCH , 23 ) ;
TemporalAdjuster
เพื่อให้ได้วันแรกของสัปดาห์ (a) ตัดสินใจว่าวันแรกของสัปดาห์คืออะไรสำหรับคุณ (b) ใช้ TemporalAdjuster
การใช้งานที่กำหนดไว้ใน TemporalAdjusters
เพื่อรับวันที่สำหรับวัตถุ DayOfWeek
enum เฉพาะ
LocalDate ld = someDate.with( TemporalAdjusters.previousOrSame( DayOfWeek.MONDAY ) ) ;
เฟรมเวิร์ก java.time คือ สร้างขึ้นใน Java 8 และใหม่กว่า คลาสเหล่านี้มาแทนที่คลาสวันที่-เวลา ดั้งเดิม แบบเก่าที่ยุ่งยาก เช่น java.util.Date
, Calendar
, & SimpleDateFormat
โปรเจ็กต์ Joda-Time อยู่ใน โหมดการบำรุงรักษา แนะนำให้ย้ายไปยัง java.time คลาส
หากต้องการเรียนรู้เพิ่มเติม โปรดดูที่บทช่วยสอนของ Oracle และค้นหา Stack Overflow เพื่อดูตัวอย่างและคำอธิบายมากมาย ข้อมูลจำเพาะคือ JSR 310
จะรับคลาส java.time ได้ที่ไหน?