我用戶遵守格式(dd.mm.yyyy
)。我想重複地詢問用戶的生日,直到他以正確的格式輸入他的生日。在用戶以正確的格式輸入他的生日之前,我會如何爲用戶輸入循環提出問題?我可以爲用戶輸入設置哪些條件?循環直到用戶以正確的格式輸入他的生日
這是我寫的小程序。
puts "What is your birthday? (dd.mm.yyyy)"
user_input = gets.chomp
user_array = user_input.split(".")
uyyyy = user_array[2]
umm = user_array[1]
udd = user_array[0]
y = Time.now.year
m = Time.now.month
d = Time.now.day
require 'Date'
a = Date.new(y.to_i, m.to_i, d.to_i) - Date.new(uyyyy.to_i, umm.to_i, udd.to_i,)
sec = (a * 24 * 60 * 60).to_i
if a < 0
puts "You are born in the future!"
puts "You will be born in #{a} days"
else
puts "Your year is #{uyyyy}! Your month is #{umm}! Your day is #{udd}!"
puts "Todays year is #{y}! Todays month is #{m}! Todays day is #{d}!"
puts "You are #{a.to_int/365} years, #{m} month and #{d} days old"
puts "You are #{sec} seconds old!"
end
你可以使用一個簡單的正則表達式。 '/ \ d {2} \。\ d {2} \。\ d {4} /'應該這樣做,我想。 –
@SergioTulentsev你忘了'\ A'和'\ z'。 – sawa
@sawa:true,true。 –