Ruby Academy · บทเรียน

การคำนวณเวลา

ระยะเวลาและความแตกต่าง

บทเรียน 3 จาก 413 ขั้นตอน

การคำนวณเวลา เป็นบทเรียน Ruby Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ruby Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ruby Academy มีบทเรียนทั้งหมด 4 บทเรียน

การเพิ่มวินาทีให้ Time

การคำนวณด้วย Time ทำงานในหน่วยวินาที การบวกตัวเลขเข้ากับ Time จะเลื่อนเวลาไปข้างหน้าตามจำนวนวินาทีนั้น

t = Time.new(2026, 5, 30, 12, 0, 0)
later = t + 60
puts(later.min)

การลบวินาที

การลบตัวเลขจะเลื่อน Time ย้อนกลับตามจำนวนวินาทีนั้น

t = Time.new(2026, 5, 30, 12, 0, 0)
earlier = t - 3600
puts(earlier.hour)

ระยะเวลาที่อ่านเข้าใจง่าย

เขียนระยะเวลาเป็นผลคูณของวินาทีเพื่อให้เห็นเจตนาอย่างชัดเจน: 60 วินาที, 60 * 60 หนึ่งชั่วโมง, 24 * 60 * 60 หนึ่งวัน

day = 24 * 60 * 60
t = Time.new(2026, 5, 30)
puts((t + day).day)

ความแตกต่างระหว่างเวลาสองจุด

การลบ Time หนึ่งค่าออกจากอีกค่าหนึ่งจะให้จำนวนทศนิยมของวินาทีระหว่างเวลาทั้งสอง

a = Time.new(2026, 5, 30, 12, 0, 0)
b = Time.new(2026, 5, 30, 13, 30, 0)
diff = b - a
puts(diff)
puts(diff / 60)

การแปลงระยะเวลา

แปลงผลต่างของวินาทีดิบเป็นชั่วโมงและนาทีโดยใช้การคำนวณจำนวนเต็ม

secs = 5400
puts("#{secs / 3600}h #{(secs % 3600) / 60}m")

การคำนวณวันที่เป็นจำนวนวัน

ต่างจาก Time ตรงที่คลาส Date เพิ่มค่าเป็นวัน การบวกจำนวนเต็มจะเลื่อนไปข้างหน้าตามจำนวนวันนั้น

require 'date'
d = Date.new(2026, 5, 30)
puts((d + 5).to_s)

ความแตกต่างระหว่างวันที่สองวัน

การลบ Date สองค่าจะคืนค่าจำนวนวันในรูปRational เรียกใช้ to_i เพื่อให้ได้จำนวนวันเต็ม

require 'date'
a = Date.new(2026, 1, 1)
b = Date.new(2026, 12, 31)
puts((b - a).to_i)

การเลื่อนเดือนและปี

คลาส Date มี next_month, prev_month, next_year และตัวดำเนินการ >> / << สำหรับเลื่อนตามเดือนได้อย่างปลอดภัย

require 'date'
d = Date.new(2026, 5, 30)
puts(d.next_month.to_s)
puts((d >> 3).to_s)

ความปลอดภัยเมื่อถึงสิ้นเดือน

การเลื่อนเดือนจะจำกัดผลลัพธ์ให้อยู่ในวันที่ถูกต้อง การบวกหนึ่งเดือนให้วันที่ 31 ม.ค. จะได้วันสุดท้ายที่ถูกต้องของเดือนกุมภาพันธ์ ไม่กลายเป็นวันที่ไม่ถูกต้อง

require 'date'
d = Date.new(2026, 1, 31)
puts((d >> 1).to_s)

การนับจำนวนวันจนถึงวันที่กำหนด

งานที่พบบ่อยคือการหาว่าเหลืออีกกี่วันถึงวันที่ในอนาคต ให้ลบวันนี้ออกจากวันที่เป้าหมาย

require 'date'
target = Date.new(2026, 12, 25)
from = Date.new(2026, 5, 30)
puts("#{(target - from).to_i} days to go")

การวัดเวลาที่ผ่านไป

หากต้องการวัดว่าโค้ดใช้เวลานานเท่าใด ให้บันทึกค่า Time.now ก่อนและหลังการทำงาน แล้วนำมาลบกัน

start = Time.now
sum = 0
1000.times { |i| sum += i }
puts("sum=#{sum}")
puts((Time.now - start) >= 0)

ตรวจสอบความเข้าใจ

เมื่อคุณลบ Time หนึ่งค่าออกจากอีกค่าหนึ่ง รูบีจะคืนค่าอะไร

ทบทวน: การคำนวณด้วย Time

ตอนนี้คุณสามารถคำนวณเกี่ยวกับเวลาได้แล้ว:

  • Time บวกและลบในหน่วยวินาที
  • Date บวกและลบในหน่วยวัน
  • Time ลบ Time จะได้วินาทีในรูปจำนวนทศนิยม
  • Date ลบ Date จะได้วันในรูปจำนวนตรรกยะ
  • next_month, >>, << ใช้เลื่อนเดือนอย่างปลอดภัย
require 'date'
puts((Date.new(2026,6,1) - Date.new(2026,5,1)).to_i)
เริ่มต้นได้ฟรี

เรียนรู้ Ruby ด้วย AI tutor — ฟรี

เขียนและเรียกใช้โค้ดจริงในเบราว์เซอร์ของคุณ รับความช่วยเหลือทันทีจาก AI tutor 24/7 และเรียนรู้ต่อจากที่คุณหยุดบนเว็บหรือในแอป

คอร์ส
29
บทเรียน
109

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

บทเรียน “การคำนวณเวลา” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “การคำนวณเวลา” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ruby Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ruby Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “การคำนวณเวลา”

ระยะเวลาและความแตกต่าง คุณปฏิบัติ Ruby Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ruby Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ruby Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 3 จากทั้งหมด 4 บทเรียน

บทเรียน “การคำนวณเวลา” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Ruby Academy นี้ได้ไหม

ได้ บทเรียน Ruby Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. คลาสเวลาและวันที่
  2. การแยกวิเคราะห์และการจัดรูปแบบ
  3. การคำนวณเวลา
  4. เขตเวลา
← กลับไปที่ Ruby Academy