ToolDeck

เครื่องคำนวณวันที่

คำนวณความแตกต่างระหว่างสองวันในหน่วยปี เดือน วัน และอื่นๆ

การคำนวณวันที่คืออะไร?

การคำนวณวันที่คือกระบวนการหาความแตกต่างระหว่างสองวันตามปฏิทิน หรือการบวก/ลบช่วงเวลาจากวันที่ที่กำหนด เครื่องคำนวณวันที่ออนไลน์ช่วยให้คุณหาจำนวนวัน สัปดาห์ เดือน และปีที่แน่นอนระหว่างวันที่ใดๆ สองวัน โดยไม่ต้องนับด้วยมือ เครื่องมือนี้มีประโยชน์ในการวางแผนโครงการ กฎหมายสัญญา การบัญชีการเงิน และการพัฒนาซอฟต์แวร์

ความซับซ้อนของการคำนวณวันที่มาจากโครงสร้างที่ไม่สม่ำเสมอของปฏิทินเกรโกเรียน แต่ละเดือนมี 28, 29, 30 หรือ 31 วัน แต่ละปีมี 365 หรือ 366 วันขึ้นอยู่กับกฎปีอธิกสุรทิน การลบจำนวนวันอย่างง่ายจะให้ผลผิดพลาดเมื่อวันที่ข้ามเดือนหรือปีที่แตกต่างกัน อัลกอริทึมหาความแตกต่างของวันที่ที่ถูกต้องต้องคำนึงถึงความไม่สม่ำเสมอเหล่านี้โดยการคำนวณแต่ละหน่วยปฏิทินแยกกัน

การคำนวณเลขคณิตวันที่ปรากฏในบริบทการเขียนโปรแกรมหลายด้าน ได้แก่ การคำนวณวันหมดอายุของโทเค็น การกำหนดเวลาเหตุการณ์ที่เกิดซ้ำ การคำนวณกำหนดเส้นตาย SLA หรือการวัดเวลาที่ผ่านไประหว่างรายการในไฟล์บันทึก ในกระบวนการทำงาน DevOps จะพบในรูปแบบช่วงเวลาที่ใบรับรองมีผล ระยะเวลาหยุดการดีพลอย และความยาวของรอบเวรตามสาย แม้ว่าภาษาโปรแกรมส่วนใหญ่จะมีไลบรารีสำหรับจัดการวันที่ แต่เครื่องคำนวณบนเบราว์เซอร์ให้คำตอบทันทีสำหรับการตรวจสอบด่วนโดยไม่ต้องเขียนโค้ด ติดตั้งไลบรารี หรือเปิด REPL

ทำไมต้องใช้เครื่องคำนวณวันที่นี้?

รับผลลัพธ์ทันทีว่ามีเวลาเท่าใดระหว่างวันที่สองวัน พร้อมแสดงผลในหลายหน่วยพร้อมกัน ไม่ต้องใช้สูตร ไม่ต้องเขียนโค้ด ไม่ต้องสมัครสมาชิก

ผลลัพธ์ทันที
เลือกสองวันแล้วดูความแตกต่างในหน่วยปี เดือน สัปดาห์ วัน ชั่วโมง และนาที ผลลัพธ์อัปเดตทันทีเมื่อคุณเปลี่ยนวันที่ใดวันหนึ่ง
🔒
ให้ความเป็นส่วนตัวเป็นอันดับแรก
การคำนวณทั้งหมดทำงานในเบราว์เซอร์ของคุณ ไม่มีการส่งวันที่ใดๆ ไปยังเซิร์ฟเวอร์ และไม่มีการจัดเก็บหรือบันทึกข้อมูล
📅
หลายหน่วยผลลัพธ์
ดูผลลัพธ์ในทุกหน่วยพร้อมกัน ได้แก่ รวมวัน สัปดาห์ เดือน และการแยกย่อยแบบปี-เดือน-วันครบถ้วน ไม่จำเป็นต้องแปลงระหว่างหน่วยเอง
🔢
ไม่ต้องสมัครบัญชี
ใช้งานเครื่องมือได้ทันที ไม่ต้องเข้าสู่ระบบ ไม่ต้องสมัครสมาชิก และไม่มีขีดจำกัดการใช้งาน บุ๊กมาร์กและใช้เมื่อต้องการตรวจสอบวันที่ด่วน

กรณีการใช้งานเครื่องคำนวณวันที่

การพัฒนา Frontend
ตรวจสอบว่ามีกี่วันถึงวันเปิดตัวฟีเจอร์ ยืนยันตรรกะของตัวนับถอยหลัง หรือทดสอบคอมโพเนนต์ตัวเลือกวันที่กับช่วงเวลาที่คาดหวัง
วิศวกรรม Backend
ตรวจสอบช่วงเวลาหมดอายุของโทเค็น คำนวณระยะเวลา TTL ของ cache หรือยืนยันว่าช่วงเวลาของงานที่กำหนดเวลาให้ผลวันที่รันครั้งถัดไปที่ถูกต้อง
DevOps และ SRE
วัดช่วงเวลาระหว่าง timestamp ของเหตุการณ์ในรายงานหลังเหตุการณ์ คำนวณเวลานำก่อนวันหมดอายุของใบรับรอง หรือกำหนดระยะเวลาหยุดการดีพลอยในช่วงวันหยุด
QA และการทดสอบ
สร้างข้อมูลทดสอบที่มีออฟเซ็ตวันที่เฉพาะ ยืนยันตรรกะการจำกัดอายุโดยคำนวณอายุที่แน่นอนจากวันเกิด หรือยืนยันว่าเงื่อนไขขอบเขตวันที่ได้รับการจัดการอย่างถูกต้อง
การจัดการโครงการ
คำนวณระยะเวลา sprint วัดจำนวนวันทำการระหว่างไมล์สโตน หรือประมาณไทม์ไลน์การส่งมอบโดยนับวันตามปฏิทินจากวันเริ่มต้น
นักเรียนและการเรียนรู้
นับวันถึงวันสอบ คำนวณความยาวของภาคเรียน หรือตรวจสอบคำตอบการบ้านสำหรับแบบฝึกหัดเลขคณิตวันที่ในหลักสูตรวิทยาการคอมพิวเตอร์

ตารางอ้างอิงหน่วยระยะเวลาวันที่

การคำนวณความแตกต่างของวันที่เกี่ยวข้องกับหน่วยที่มีความยาวแตกต่างกัน เดือนและปีไม่มีความยาวคงที่ ซึ่งเป็นเหตุผลว่าทำไมการหารรวมวันอย่างง่ายจึงให้ผลที่ไม่แม่นยำ ตารางด้านล่างแสดงแต่ละหน่วยและช่วงของมัน

หน่วยเทียบเท่าหมายเหตุ
1 year365 or 366 daysDepends on leap year
1 month28–31 daysVaries by month
1 week7 daysFixed
1 day24 hoursFixed (ignoring DST transitions)
1 hour3,600 secondsFixed
1 minute60 secondsFixed

รูปแบบวันที่ที่พบบ่อย

เมื่อทำงานกับวันที่ในเชิงโปรแกรม รูปแบบจะกำหนดวิธีที่สตริงวันที่ถูกแปลง การใช้รูปแบบผิดทำให้เกิดข้อผิดพลาดที่ไม่แสดงข้อความเตือน ISO 8601 เป็นตัวเลือกที่ปลอดภัยที่สุดสำหรับการแลกเปลี่ยนข้อมูลเพราะไม่คลุมเครือและรับรู้เขตเวลา ตารางด้านล่างแสดงรูปแบบที่คุณน่าจะพบบ่อยที่สุด

รูปแบบตัวอย่างใช้ใน
ISO 86012026-04-10T14:30:00ZAPIs, databases, logs
RFC 2822Fri, 10 Apr 2026 14:30:00 +0000Email headers, HTTP
Unix timestamp1775831400Epoch-based systems
US format04/10/2026User-facing (US locale)
European format10.04.2026User-facing (EU locale)
Short ISO2026-04-10HTML date inputs, SQL DATE

ตัวอย่างโค้ด: คำนวณจำนวนวันระหว่างวันที่

ตัวอย่างการทำงานสำหรับการคำนวณความแตกต่างระหว่างสองวันใน JavaScript, Python, Go และบรรทัดคำสั่ง แต่ละตัวอย่างแสดงทั้งการคำนวณรวมวันและการแยกย่อยตามหน่วยปฏิทินในกรณีที่ภาษารองรับ

JavaScript
// Calculate days between two dates
const start = new Date('2026-01-15')
const end = new Date('2026-04-10')
const diffMs = end.getTime() - start.getTime()
const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24))
console.log(diffDays) // → 85

// Get year, month, day breakdown
function dateDiff(a, b) {
  let years = b.getFullYear() - a.getFullYear()
  let months = b.getMonth() - a.getMonth()
  let days = b.getDate() - a.getDate()
  if (days < 0) {
    months--
    days += new Date(b.getFullYear(), b.getMonth(), 0).getDate()
  }
  if (months < 0) { years--; months += 12 }
  return { years, months, days }
}
console.log(dateDiff(start, end)) // → { years: 0, months: 2, days: 26 }
Python
from datetime import date, timedelta
from dateutil.relativedelta import relativedelta

start = date(2026, 1, 15)
end = date(2026, 4, 10)

# Total days
diff = (end - start).days
print(diff)  # → 85

# Year/month/day breakdown (requires python-dateutil)
rd = relativedelta(end, start)
print(f"{rd.years}y {rd.months}m {rd.days}d")  # → 0y 2m 26d

# Add 90 days to a date
future = start + timedelta(days=90)
print(future)  # → 2026-04-15
Go
package main

import (
	"fmt"
	"time"
)

func main() {
	start := time.Date(2026, 1, 15, 0, 0, 0, 0, time.UTC)
	end := time.Date(2026, 4, 10, 0, 0, 0, 0, time.UTC)

	// Total duration
	diff := end.Sub(start)
	days := int(diff.Hours() / 24)
	fmt.Println(days) // → 85

	// Add 90 days
	future := start.AddDate(0, 0, 90)
	fmt.Println(future.Format("2006-01-02")) // → 2026-04-15
}
CLI (GNU date / macOS)
# Days between two dates (GNU coreutils)
echo $(( ($(date -d "2026-04-10" +%s) - $(date -d "2026-01-15" +%s)) / 86400 ))
# → 85

# Add 90 days to a date (GNU date)
date -d "2026-01-15 + 90 days" +%Y-%m-%d
# → 2026-04-15

# macOS (BSD date) — add 90 days
date -j -v+90d -f "%Y-%m-%d" "2026-01-15" +%Y-%m-%d
# → 2026-04-15

คำถามที่พบบ่อย

จะคำนวณจำนวนวันระหว่างสองวันได้อย่างไร?
ลบวันที่ก่อนหน้าออกจากวันที่หลังเพื่อรับความแตกต่างในหน่วยมิลลิวินาที (หรือประเภทระยะเวลาที่ภาษาของคุณรองรับ) จากนั้นหารด้วยจำนวนมิลลิวินาทีในหนึ่งวัน (86,400,000) ซึ่งจะได้จำนวนวันที่ผ่านไปทั้งหมด สำหรับการแยกย่อยตามปฏิทินเป็นปี เดือน และวันที่เหลือ คุณต้องคำนวณแต่ละหน่วยแยกกันเพราะแต่ละเดือนมีความยาวไม่เท่ากัน
ความแตกต่างของวันที่รวมวันเริ่มต้นหรือวันสิ้นสุดหรือไม่?
ตามธรรมเนียม การหาความแตกต่างของวันที่จะนับวันระหว่างสองวัน โดยไม่รวมวันเริ่มต้นหรือวันสิ้นสุด ถ้าคุณเลือกวันที่ 1 มกราคมและ 2 มกราคม ผลลัพธ์คือ 1 วัน ถ้ากรณีการใช้งานของคุณต้องการการนับแบบรวม (รวมทั้งสองปลาย) ให้บวก 1 เข้าไปในผลลัพธ์ เครื่องมือนี้ใช้ธรรมเนียมไม่รวมปลายที่ภาษาโปรแกรมส่วนใหญ่ใช้
ปีอธิกสุรทินถูกจัดการอย่างไรในการคำนวณวันที่?
ปีอธิกสุรทินเพิ่มวันที่ 29 กุมภาพันธ์ ทำให้ปีนั้นมี 366 วันแทน 365 กฎปีอธิกสุรทินของปฏิทินเกรโกเรียนคือ หารด้วย 4 ลงตัว ยกเว้นปีร้อย ซึ่งต้องหารด้วย 400 ลงตัวด้วย ดังนั้น 2024 และ 2028 คือปีอธิกสุรทิน ส่วน 1900 ไม่ใช่ และ 2000 ใช่ อัลกอริทึมหาความแตกต่างของวันที่ที่ทำงานกับหน่วยปฏิทิน (ปี/เดือน/วัน) จัดการเรื่องนี้โดยอัตโนมัติ อัลกอริทึมที่แปลงเป็นรวมวันต้องคำนึงถึงวันพิเศษเมื่อช่วงเวลาครอบคลุมวันที่ 29 กุมภาพันธ์
ความแตกต่างระหว่างวันตามปฏิทินกับวันทำการคืออะไร?
วันตามปฏิทินนับทุกวันรวมถึงวันหยุดสุดสัปดาห์และวันหยุดนักขัตฤกษ์ วันทำการ (หรือที่เรียกว่าวันทำงาน) ไม่รวมวันเสาร์ วันอาทิตย์ และวันหยุดราชการ เครื่องมือนี้คำนวณวันตามปฏิทิน ในการแปลงเป็นวันทำการโดยประมาณ ให้คูณรวมวันตามปฏิทินด้วย 5/7 สำหรับการนับวันทำการที่แน่นอน คุณยังต้องมีปฏิทินวันหยุดสำหรับเขตอำนาจที่เกี่ยวข้องด้วย
ฉันสามารถคำนวณวันที่ในอนาคตโดยการบวกวันเข้ากับวันเริ่มต้นได้หรือไม่?
ได้ ใน JavaScript สร้างออบเจกต์ Date แล้วเรียก setDate(getDate() + n) ใน Python ให้บวก timedelta(days=n) เข้ากับออบเจกต์ date ใน Go ใช้ time.AddDate(0, 0, n) เครื่องมือนี้เน้นที่ความแตกต่างระหว่างสองวันที่ทราบแล้ว แต่คุณสามารถใช้ตรวจสอบเลขคณิตของคุณได้ ป้อนวันเริ่มต้นและวันที่คาดหวัง แล้วยืนยันว่าผลลัพธ์รวมวันตรงกับออฟเซ็ตที่คุณบวกไว้
ทำไมเครื่องมือต่างๆ จึงให้ผลลัพธ์ต่างกันสำหรับจำนวนเดือนระหว่างวันที่?
การคำนวณเดือนมีความคลุมเครือเพราะแต่ละเดือนมีความยาวต่างกัน พิจารณา 31 มกราคมถึง 28 กุมภาพันธ์ นั่นคือ 1 เดือน หรือ 0 เดือนกับ 28 วัน? ไลบรารีต่างๆ เลือกแนวทางที่แตกต่างกัน ธรรมเนียมที่พบบ่อยที่สุด (ใช้โดย dateutil ของ Python, Period ของ Java และเครื่องมือนี้) นับเดือนเต็มว่าถึงวันที่เดียวกันในเดือนนั้น หรือวันสุดท้ายที่ถูกต้องของเดือนที่สั้นกว่า ควรตรวจสอบว่าไลบรารีของคุณใช้ธรรมเนียมใดเมื่อเปรียบเทียบผลลัพธ์
เขตเวลาส่งผลต่อการคำนวณวันที่หรือไม่?
เมื่อคุณเลือกวันที่โดยไม่มีส่วนประกอบเวลา (เพียงปี-เดือน-วัน) การคำนวณจะไม่ขึ้นกับเขตเวลาเพราะดำเนินการกับวันตามปฏิทิน ไม่ใช่ช่วงเวลาที่แน่นอน หากคุณต้องการคำนวณความแตกต่างระหว่างสองช่วงเวลาที่เฉพาะเจาะจง (รวมถึงเวลาและเขตเวลา) คุณควรทำงานกับ timestamp ISO 8601 แบบเต็มและแปลงทั้งสองเป็น UTC ก่อนการลบ เครื่องมือนี้ดำเนินการกับวันตามปฏิทินเท่านั้น