Period และการคำนวณวันที่
บวกและลบวันที่
Period และการคำนวณวันที่ เป็นบทเรียน Java Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Java Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Java Academy มีบทเรียนทั้งหมด 4 บทเรียน
ปริมาณเวลาตามวันที่
ขณะที่ Duration ใช้วัดเวลาเป็นชั่วโมงและวินาที Period ใช้วัดปริมาณเป็นปี เดือน และวัน จึงเหมาะสำหรับการคำนวณตามปฏิทิน เช่น อายุและกำหนดส่ง
การเพิ่มวัน
LocalDate มี plusDays สำหรับเลื่อนวันที่ไปข้างหน้า โปรดจำไว้ว่าผลลัพธ์เป็นค่าใหม่ที่ไม่สามารถเปลี่ยนแปลงได้
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate start = LocalDate.of(2026, 5, 30);
System.out.println(start.plusDays(10));
}
}การเพิ่มเดือนและปี
plusMonths และ plusYears ใช้เลื่อนวันที่เป็นหน่วยที่ใหญ่ขึ้น และจัดการจำนวนวันในแต่ละเดือนได้อย่างถูกต้อง
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate start = LocalDate.of(2026, 1, 31);
System.out.println(start.plusMonths(1));
System.out.println(start.plusYears(2));
}
}การลบวันที่
ใช้ minusDays, minusWeeks และเมธอดที่คล้ายกันเพื่อเลื่อนย้อนกลับไปในเวลา
import java.time.LocalDate;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2026, 5, 30);
System.out.println(date.minusWeeks(2));
}
}การสร้าง Period
สร้าง Period ด้วย of หรือเมธอดตัวสร้างสำหรับหน่วยเดียว เช่น ofMonths แล้วนำไปบวกกับวันที่
import java.time.LocalDate;
import java.time.Period;
public class Main {
public static void main(String[] args) {
Period p = Period.of(1, 2, 3);
LocalDate date = LocalDate.of(2026, 1, 1);
System.out.println(date.plus(p));
}
}Period ระหว่างวันที่
Period.between ใช้วัดช่วงห่างระหว่างวันที่สองวันในรูปปี เดือน และวัน
import java.time.LocalDate;
import java.time.Period;
public class Main {
public static void main(String[] args) {
LocalDate from = LocalDate.of(2020, 1, 15);
LocalDate to = LocalDate.of(2026, 5, 30);
Period p = Period.between(from, to);
System.out.println(p.getYears() + "y " + p.getMonths() + "m " + p.getDays() + "d");
}
}การคำนวณอายุ
การใช้งาน Period.between ที่พบได้บ่อยคือการคำนวณอายุเป็นจำนวนปีเต็ม
import java.time.LocalDate;
import java.time.Period;
public class Main {
public static void main(String[] args) {
LocalDate birth = LocalDate.of(2000, 6, 15);
LocalDate today = LocalDate.of(2026, 5, 30);
int age = Period.between(birth, today).getYears();
System.out.println(age);
}
}การนับจำนวนวันทั้งหมด
Period แบ่งช่วงห่างออกเป็นปี เดือน และวัน หากต้องการนับจำนวนวันรวมเพียงค่าเดียว ให้ใช้ ChronoUnit.DAYS.between แทน
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
public class Main {
public static void main(String[] args) {
LocalDate from = LocalDate.of(2026, 1, 1);
LocalDate to = LocalDate.of(2026, 12, 31);
long days = ChronoUnit.DAYS.between(from, to);
System.out.println(days);
}
}ความยืดหยุ่นของ ChronoUnit
ChronoUnit สามารถนับได้หลายหน่วย ได้แก่ DAYS, WEEKS, MONTHS และ YEARS การเรียก between แต่ละครั้งจะส่งคืนตัวเลขเพียงหนึ่งค่า
import java.time.LocalDate;
import java.time.temporal.ChronoUnit;
public class Main {
public static void main(String[] args) {
LocalDate from = LocalDate.of(2026, 1, 1);
LocalDate to = LocalDate.of(2026, 12, 31);
System.out.println(ChronoUnit.WEEKS.between(from, to));
System.out.println(ChronoUnit.MONTHS.between(from, to));
}
}การค้นหาวันในสัปดาห์ถัดไป
คลาส TemporalAdjusters มีการปรับวันที่อย่างชาญฉลาด เช่น การข้ามไปยังวันแรกของเดือนถัดไป
import java.time.LocalDate;
import java.time.temporal.TemporalAdjusters;
public class Main {
public static void main(String[] args) {
LocalDate date = LocalDate.of(2026, 5, 30);
System.out.println(date.with(TemporalAdjusters.firstDayOfNextMonth()));
}
}Period กับ ChronoUnit
ใช้ Period เมื่อต้องการแยกผลลัพธ์เป็นปี เดือน และวันในรูปแบบที่เข้าใจได้สำหรับมนุษย์ ใช้ ChronoUnit.between เมื่อต้องการจำนวนรวมเพียงค่าเดียวในหน่วยเดียว
ตรวจสอบความเข้าใจ
ทดสอบทักษะการคำนวณวันที่
สรุปทบทวน
คุณได้เรียนรู้การคำนวณวันที่ดังนี้
plusDays,plusMonthsและplusYearsใช้เลื่อนวันที่โดยไม่เปลี่ยนแปลงค่าเดิมPeriodใช้วัดปี เดือน และวัน จึงเหมาะสำหรับการคำนวณอายุPeriod.betweenแสดงช่วงห่างในรูปแบบปี เดือน และวันที่เข้าใจได้สำหรับมนุษย์ChronoUnit.betweenแสดงจำนวนรวมเพียงค่าเดียวในหน่วยที่เลือกTemporalAdjustersจัดการการข้ามวันที่อย่างชาญฉลาด เช่น การไปยังวันแรกของเดือนถัดไป
คำถามที่พบบ่อย
บทเรียน “Period และการคำนวณวันที่” ฟรีหรือไม่
ใช่ — ข้อความเต็มของ “Period และการคำนวณวันที่” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Java Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Java Academy มีบทเรียนทั้งหมด 4 บทเรียน
คุณจะเรียนรู้อะไรในบทเรียน “Period และการคำนวณวันที่”
บวกและลบวันที่ คุณปฏิบัติ Java Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน
คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Java Academy หรือไม่
ไม่จำเป็นต้องมีประสบการณ์มาก่อน Java Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน
บทเรียน “Period และการคำนวณวันที่” ใช้เวลานานแค่ไหน
บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย
ฉันเขียนและรันโค้ดในบทเรียน Java Academy นี้ได้ไหม
ได้ บทเรียน Java Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ
บทเรียนทั้งหมดในหลักสูตรนี้
- LocalDate, LocalTime, LocalDateTime
- Instant และ Duration
- Period และการคำนวณวันที่
- การจัดรูปแบบด้วย DateTimeFormatter