ข้ามไปยังเนื้อหา

เครื่องคำนวณอายุ — อายุที่แน่นอนเป็นปี เดือน และวัน

เครื่องคำนวณอายุฟรี: ป้อนวันเกิด เพื่อให้ได้อายุที่แน่นอนเป็นปี เดือน และวัน รวมทั้งสัปดาห์ วัน ชั่วโมง ทั้งหมด และวันเกิดครั้งถัดไป

เครื่องคำนวณอายุ

อายุที่แน่นอน
36 ปี 7 เดือน 9 วัน

คุณเกิดในวัน Monday

วันเกิดครั้งถัดไป: 144 วันข้างหน้า (จะถึง 37)

อายุของคุณในหน่วยอื่น

เดือน
439
สัปดาห์
1,910
วัน
13,370
ชั่วโมง
320,880
นาที
19,252,800
วินาที
1,155,168,000

ความก้าวหน้าของชีวิต

อายุของคุณเทียบกับช่วงอ้างอิง 80 ปีเพื่อประกอบการอธิบาย

การแสดงภาพอายุ3636 / 80 yr080
เครื่องคำนวณโหลด...
📚

เอกสารประกอบการใช้งาน

เครื่องคำนวณนี้ทำอะไร

พิมพ์วันเกิดของคุณ และมันจะบอกคุณว่าคุณอายุเท่าไหร่แน่นอน — เป็นปี เดือน และวัน — แบบเดียวกับที่คุณจะพูดออกมา ("ฉันอายุ 33 ปี 4 เดือน 5 วัน") นอกจากนี้ยังแสดงอายุเดียวกันนั้นคิดเป็นเดือน สัปดาห์ วัน ชั่วโมง นาที และวินาที วันในสัปดาห์ที่คุณเกิด และระยะเวลาจนถึงวันเกิดของคุณครั้งถัดไป

ปล่อยให้ช่องที่สองเป็นวันนี้เพื่อให้ได้อายุปัจจุบันของคุณ หรือเปลี่ยนเป็นวันใดก็ได้ในอดีตหรืออนาคตเพื่อค้นหาอายุของคุณในวันนั้น

กฎข้อหนึ่งที่ทำให้การคำนวณอายุยุ่งยาก: เดือนและปีไม่ได้มีจำนวนวันคงที่ กุมภาพันธ์มี 28 หรือ 29 วัน เดือนอื่นมี 30 หรือ 31 วัน ดังนั้น "1 เดือน" หมายถึง "วันที่เดียวกัน เดือนต่อมา" — ไม่ใช่ "30 วัน" เครื่องคำนวณนี้ทำตามกฎปฏิทิน ซึ่งเป็นเหตุว่าทำไมมันจึงอาจแตกต่างไปหนึ่งหรือสองวันจากเครื่องมือที่แค่หารด้วย 30 หรือ 365

วิธีการคำนวณอายุ

อายุคือช่องว่างระหว่างสองวัน มีสองวิธีซื่อสัตย์ในการวัดช่องว่างนั้น และเครื่องมือนี้แสดงทั้งสอง

1. อายุตามปฏิทิน (ปี เดือน วัน) นับปีเต็มตั้งแต่วันเกิด จากนั้นนับเดือนเต็ม จากนั้นนับวันที่เหลือ:

  1. นับจำนวนปีเต็มตั้งแต่เกิด
  2. จากวันเกิดครั้งสุดท้าย นับจำนวนเดือนเต็ม
  3. จากที่นั่น นับวันที่เหลือ

ส่วนที่ละเอียดอ่อนคือขั้นตอนที่ 3 ใกล้กับขอบเขตของเดือน บุคคลที่เกิดเมื่อ31 มกราคม วัดเมื่อ1 มีนาคม อายุ1 เดือน 1 วัน — เพราะว่า "หนึ่งเดือนหลังจาก 31 มกราคม" ลงจอดบน 28/29 กุมภาพันธ์ (ไม่มี 31 กุมภาพันธ์) และ 1 มีนาคม คือหนึ่งวันหลังจากนั้น เครื่องคำนวณนี้จะจำกัดไว้ที่สิ้นสุดของเดือนที่สั้นกว่า ตรงกับกฎ dateutil.relativedelta ที่ใช้อย่างแพร่หลาย ดังนั้นวันเกิดสิ้นเดือนจึงไม่ให้การนับวันเป็นลบ

2. เวลาที่ผ่านไปทั้งหมด (วัน ชั่วโมง วินาที) สำหรับตัวเลข "อายุของคุณในหน่วยอื่น" ให้แปลงสองวันเป็นการนับจำนวนวันเต็ม และคูณออก:

days=target datebirth date86,400,000 ms\text{days} = \left\lfloor \frac{\text{target date} - \text{birth date}}{86{,}400{,}000 \text{ ms}} \right\rfloor

ทั้งสองวันถูกยึดไว้ที่เที่ยงคืน UTC ก่อน ดังนั้นการเปลี่ยนแปลงการประหยัดแสง วันจึงไม่สามารถเพิ่มหรือลดชั่วโมง และทำให้การนับวันเสียหาย สัปดาห์คือวัน ÷ 7 (ปัดลง); ชั่วโมง นาที และวินาที เป็นการนับวันที่ปรับขนาด

ทำไมไม่แค่หารวันด้วย 365? เพราะคุณจะลอย การหาร 7,305 วันด้วย 365 ได้ 20.01 ปี; หารด้วย 365.25 ได้ 20.00 — แต่ไม่มีตัวไหนรู้ปีไหนที่เป็นปีอธิกสุรทิน หรือเดือนไหนที่คุณอาศัยอยู่จริงๆ การนับปฏิทินนั้นแม่นยำ; การหารวันนั้นเป็นการประมาณ ใช้อายุปฏิทินสำหรับ "ฉันอายุเท่าไหร่" และ วันทั้งหมด/สัปดาห์ สำหรับการทำงานที่ผ่านมาในเวลาที่ชัดเจน (การจัดเวลายา ระยะเวลาโครงการ นับถอยหลังไมล์ฝั่ง)

ตัวอย่างที่ได้งาน

เกิด1 มกราคม 2000 วัด1 มกราคม 2020:

วัดค่า
อายุตามปฏิทิน20 ปี 0 เดือน 0 วัน
วันรวม7,305
สัปดาห์รวม1,043
วันในสัปดาห์ที่เกิดวันเสาร์

7,305 วัน = 20 × 365 + 5 วันอธิกสุรทิน (2000, 2004, 2008, 2012, 2016) รายละเอียดเดียวนี้ — วันพิเศษห้าวันที่คนส่วนใหญ่ลืม — คือเหตุผลที่ทำให้เครื่องคำนวณนั้นดีกว่าการคำนวณทางจิต

Birth date to target date: 20 years, 7,305 days Birth 2000-01-01 Target 2020-01-01 20 years = 7,305 days

อายุในรหัส

การคำนวณเดียวกันในแต่ละภาษา สำหรับอายุตามปฏิทิน ให้ใช้ห้องสมุดวันที่ในตัว มากกว่าเลขคณิตที่หมุนด้วยมือ — มันรู้ว่าปีอธิกสุรทิน และระยะเวลาของเดือนอยู่แล้ว

1' Whole days between two dates (A1 = birth, B1 = target):
2=B1-A1
3
4' Calendar age in complete years / months / leftover days:
5=DATEDIF(A1, B1, "y") & " years, " & DATEDIF(A1, B1, "ym") & " months, " & DATEDIF(A1, B1, "md") & " days"
6

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

ฉันอายุเท่าไหร่แน่นอน? ป้อนวันเกิดของคุณ และปล่อยให้เป้าหมายเป็นวันนี้ เครื่องคำนวณแสดงอายุของคุณเป็นปี เดือน และวัน และทำซ้ำเป็นวันรวม สัปดาห์ ชั่วโมง และวินาที

ทำไมอายุของฉันจึงแตกต่างจากเครื่องคำนวณอื่น? เกือบทุกครั้งคือเศษเดือน/วัน เครื่องมือต่างกันในวิธีการนับวันหลังเดือนเต็มที่ขอบเขตของเดือน อันนี้จะจำกัดไว้ที่เดือนที่สั้นกว่า (อนุสัญญา relativedelta); เครื่องมือที่หารด้วย 30 จะแตกต่างไปหนึ่งหรือสองวัน

มันรับมือกับปีอธิกสุรทินและวันเกิด 29 กุมภาพันธ์หรือไม่? ใช่ การนับวันรวมการนับจำนวนทุกวันอธิกสุรทินในช่วง และวันเกิด 29 กุมภาพันธ์จะวัดเทียบกับ 28 ก.พ. / 1 มี.ค. ในปีที่ไม่เป็นปีอธิกสุรทินโดยไม่เกิน

ฉันสามารถคำนวณอายุในวันที่ผ่านมาหรืออนาคตได้หรือไม่? ใช่ — ตั้งค่าช่อง "อายุตามวันที่" เป็นวันใดก็ได้ วันที่ในอนาคตบอกคุณว่าคุณจะอายุเท่าไหร่ตอนนั้น; วันที่ผ่านมา คุณมีอายุเท่าไหร่

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

แหล่งที่มา

  1. Python dateutilrelativedelta (กฎเดือน/วันอายุปฏิทินที่เครื่องมือนี้ปฏิบัติตามแบบการ)
  2. Java Platform — Period.between และ ChronoUnit.DAYS
  3. Microsoft Excel — DATEDIF function
  4. MDN Web Docs — Date
  5. Dershowitz, N., & Reingold, E. M. Calendrical Calculations: The Ultimate Edition. Cambridge University Press, 2018.