# Easy question about gets

**URL:** <https://www.ruby-forum.com/t/easy-question-about-gets/184344>\
**Category:** Ruby\
**Created:** [March 1, 2010, 9:23am UTC](https://www.ruby-forum.com/t/easy-question-about-gets/184344 "2010-03-01T09:23:27Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![xxreiichixx](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/x/9de0a6/32.png) [@xxreiichixx](https://www.ruby-forum.com/u/xxreiichixx)\
**Post date:** [March 1, 2010, 9:23am UTC](https://www.ruby-forum.com/t/easy-question-about-gets/184344/1 "2010-03-01T09:23:27Z")

</div>

(sorry my bad english) I am a beginner and in an exercise the one who  
run the program must insert his birth date and the program must says if  
today is his birthday or not.  
In C to do this I can do (I jump a part of code):

printf(“Insert your birth day (DD MM YYYY): “);  
scanf(”%d%d%d”,&db,&mb,&yb);  
printf(“Insert the current day (DD MM YYYY): “);  
scanf(”%d%d%d”,&dc,&mc,&yc);

(db = day birth; mb = month birth; dc = day current etc.)  
And the rest of the code is not important for what I want to ask.  
So, and in Ruby? I must use gets each time for any of DD, MM, and YYYY  
separately?  
There will be 6 gets, so many lines of code, is there any way to use  
just 1 time gets for all the date like in C? Or some other way to write  
less code? Thanks!

---

<div class="post-metadata">

**Author:** ![xxreiichixx](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/x/9de0a6/32.png) [@xxreiichixx](https://www.ruby-forum.com/u/xxreiichixx)\
**Post date:** [March 1, 2010, 10:08am UTC](https://www.ruby-forum.com/t/easy-question-about-gets/184344/2 "2010-03-01T10:08:03Z")

</div>

require ‘scanf’  
def getdate(s)  
print s  
$stdout.flush  
d,m,y = scanf("%d%d%d")  
end

d,m,y = getdate("Your birthday? ")

p d,m,y

---

<div class="post-metadata">

**Author:** ![xxreiichixx](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/x/9de0a6/32.png) [@xxreiichixx](https://www.ruby-forum.com/u/xxreiichixx)\
**Post date:** [March 1, 2010, 3:05pm UTC](https://www.ruby-forum.com/t/easy-question-about-gets/184344/3 "2010-03-01T15:05:20Z")

</div>

Wybo D. wrote:

> require ‘scanf’  
> def getdate(s)  
> print s  
> $stdout.flush  
> d,m,y = scanf("%d%d%d")  
> end
> 
> d,m,y = getdate("Your birthday? ")
> 
> p d,m,y

Or at a higher level:

require ‘date’  
birthday = Date.parse(gets)  
puts birthday.day, birthday.month, birthday.year

Warning: this accepts a lot of formats, including the unambiguous  
yyyy/mm/dd, but seems to default to American middle-endian dates.

irb(main):013:0\> birthday = Date.parse(“01/02/2003”)  
=\> #\<Date: 4905283/2,0,2299161\>  
irb(main):014:0\> puts birthday.day, birthday.month, birthday.year  
2  
1  
2003  
=\> nil

---

<div class="post-metadata">

**Author:** ![xxreiichixx](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/x/9de0a6/32.png) [@xxreiichixx](https://www.ruby-forum.com/u/xxreiichixx)\
**Post date:** [March 1, 2010, 9:17pm UTC](https://www.ruby-forum.com/t/easy-question-about-gets/184344/4 "2010-03-01T21:17:26Z")

</div>

Reiichi T. wrote:

> Thank you, it works! Ruby seams easy first, but is really complex _\__

This probably isn’t the best example to demonstrate the overall  
complexity of a language.

Try writing a webapp to do the same thing in Ruby and in C 😉

---

<div class="post-metadata">

**Author:** ![xxreiichixx](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/x/9de0a6/32.png) [@xxreiichixx](https://www.ruby-forum.com/u/xxreiichixx)\
**Post date:** [March 1, 2010, 8:26pm UTC](https://www.ruby-forum.com/t/easy-question-about-gets/184344/5 "2010-03-01T20:26:38Z")

</div>

Thank you, it works! Ruby seams easy first, but is really complex _\__
