×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
For fun Using Boolean logic to deal with dates
Slide 2
Slide 2 text
The problem
Slide 3
Slide 3 text
The problem Parse a string to a Date object
Slide 4
Slide 4 text
The problem ● Date could be in the mm/dd/yyyy format
Slide 5
Slide 5 text
The problem ● Date could be in the mm/dd/yyyy format ● Date could be in any format recognisable by Date.parse
Slide 6
Slide 6 text
The problem ● Date could be in the mm/dd/yyyy format ● Date could be in any format recognisable by Date.parse ● Except the dd/mm/yyyy format
Slide 7
Slide 7 text
month_day_year = Date.strptime(string, "%m/%d/%Y") rescue nil
Slide 8
Slide 8 text
month_day_year = Date.strptime(string, "%m/%d/%Y") rescue nil generic_parse = Date.parse(string) rescue nil
Slide 9
Slide 9 text
month_day_year = Date.strptime(string, "%m/%d/%Y") rescue nil generic_parse = Date.parse(string) rescue nil day_month_year = Date.strptime(string, "%d/%m/%Y") rescue nil
Slide 10
Slide 10 text
month_day_year generic_parse day_month_year result 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
Slide 11
Slide 11 text
month_day_year generic_parse day_month_year result 0 0 0 0 0 0 1 X 0 1 0 0 1 1 1 0 0 1 0 1 X 1 1 0 1 1 1
Slide 12
Slide 12 text
month_day_year generic_parse day_month_year result 0 0 0 0 0 0 1 X 0 1 0 1 0 1 1 1 0 0 1 0 1 X 1 1 0 1 1 1
Slide 13
Slide 13 text
month_day_year generic_parse day_month_year result 0 0 0 0 0 0 1 X 0 1 0 1 0 1 1 0 1 0 0 1 0 1 X 1 1 0 1 1 1
Slide 14
Slide 14 text
month_day_year generic_parse day_month_year result 0 0 0 0 0 0 1 X 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 X 1 1 0 1 1 1
Slide 15
Slide 15 text
month_day_year generic_parse day_month_year result 0 0 0 0 0 0 1 X 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 X 1 1 0 X 1 1 1
Slide 16
Slide 16 text
month_day_year generic_parse day_month_year result 0 0 0 0 0 0 1 X 0 1 0 1 0 1 1 0 1 0 0 1 1 0 1 X 1 1 0 X 1 1 1 1
Slide 17
Slide 17 text
Makes your boolean functions simpler! Karnaugh map
Slide 18
Slide 18 text
0 X 0 1 1 X 1 X generic_parse * day_month_year month_day_year 1 0 00 01 11 10
Slide 19
Slide 19 text
0 X 0 1 1 X 1 X generic_parse * day_month_year month_day_year 1 0 00 01 11 10
Slide 20
Slide 20 text
0 X 0 1 1 X 1 X generic_parse * day_month_year month_day_year 1 0 00 01 11 10
Slide 21
Slide 21 text
0 X 0 1 1 X 1 X generic_parse * day_month_year month_day_year 1 0 00 01 11 10
Slide 22
Slide 22 text
month_day_year 0 X 0 1 1 X 1 X generic_parse * day_month_year month_day_year 0 00 01 11 10 1
Slide 23
Slide 23 text
month_day_year ∨ ¬generic_parse ∧ day_month_year 0 X 0 1 1 X 1 X generic_parse * day_month_year month_day_year 0 00 01 11 10 1
Slide 24
Slide 24 text
month_day_year ∨ ¬generic_parse ∧ day_month_year ∨ generic_parse ∧ ¬day_month_year 0 X 0 1 1 X 1 X generic_parse * day_month_year month_day_year 0 00 01 11 10 1
Slide 25
Slide 25 text
((month_day_year ? 1 : 0) + ((day_month_year ? 1 : 0) ^ (generic_parse ? 1 : 0)) == 0) month_day_year || generic_parse
Slide 26
Slide 26 text
Thank you! Irina Bednova @jafrog www.jafrog.com