การคำนวณเวลา
ระยะเวลาและความแตกต่าง
การคำนวณเวลา เป็นบทเรียน 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ