vb.net - Determine Zodiac sign and weekday of birth -
hey, need make program in vb.net asks user's birthday. program should give day of week person born , astrological star sign. can me?? please!
private function zodiac(byval birthday date) string dim year integer = birthday.year dim zodiacs = { new {.from = new date(year, 1, 1), .[to] = new date(year, 1, 19), .zodiac = "capricorn"}, new {.from = new date(year, 1, 20), .[to] = new date(year, 2, 18), .zodiac = "aquarius"}, new {.from = new date(year, 2, 19), .[to] = new date(year, 3, 20), .zodiac = "pisces"}, new {.from = new date(year, 3, 21), .[to] = new date(year, 4, 19), .zodiac = "aries"}, new {.from = new date(year, 4, 20), .[to] = new date(year, 5, 20), .zodiac = "taurus"}, new {.from = new date(year, 5, 21), .[to] = new date(year, 6, 20), .zodiac = "gemini"}, new {.from = new date(year, 6, 21), .[to] = new date(year, 7, 22), .zodiac = "cancer"}, new {.from = new date(year, 7, 23), .[to] = new date(year, 8, 22), .zodiac = "leo"}, new {.from = new date(year, 8, 23), .[to] = new date(year, 9, 22), .zodiac = "virgo"}, new {.from = new date(year, 9, 23), .[to] = new date(year, 10, 22), .zodiac = "libra"}, new {.from = new date(year, 10, 23), .[to] = new date(year, 11, 21), .zodiac = "scorpio"}, new {.from = new date(year, 11, 22), .[to] = new date(year, 12, 21), .zodiac = "sagittarius"}, new {.from = new date(year, 12, 22), .[to] = new date(year, 12, 31), .zodiac = "capricorn"}} return (from z in zodiacs (z.from <= birthday , birthday <= z.[to])).single.zodiac end function
the first, crappy attempt:
private function zodiac(byval birthday date) string dim year integer = birthday.year dim sodiaccapricorn() datetime = {new datetime(year, 12, 22), new datetime(year, 1, 19)} dim sodiacaquarius() datetime = {new datetime(year, 1, 20), new datetime(year, 2, 18)} dim sodiacpisces() datetime = {new datetime(year, 2, 19), new datetime(year, 3, 20)} dim sodiacaries() datetime = {new datetime(year, 3, 21), new datetime(year, 4, 19)} dim sodiactaurus() datetime = {new datetime(year, 4, 20), new datetime(year, 5, 20)} dim sodiacgemini() datetime = {new datetime(year, 5, 21), new datetime(year, 6, 20)} dim sodiaccancer() datetime = {new datetime(year, 6, 21), new datetime(year, 7, 22)} dim sodiacleo() datetime = {new datetime(year, 7, 23), new datetime(year, 8, 22)} dim sodiacvirgo() datetime = {new datetime(year, 8, 23), new datetime(year, 9, 22)} dim sodiaclibra() datetime = {new datetime(year, 9, 23), new datetime(year, 10, 22)} dim sodiacscorpio() datetime = {new datetime(year, 10, 23), new datetime(year, 11, 21)} dim sodiacsagittarius() datetime = {new datetime(year, 11, 22), new datetime(year, 12, 21)} select case birthday.dayofyear case 1 sodiaccapricorn(1).dayofyear, sodiaccapricorn(0).dayofyear 366 return "capricorn" case sodiacaquarius(0).dayofyear sodiacaquarius(1).dayofyear return "aquarius" case sodiacpisces(0).dayofyear sodiacpisces(1).dayofyear return "pisces" case sodiacaries(0).dayofyear sodiacaries(1).dayofyear return "aries" case sodiactaurus(0).dayofyear sodiactaurus(1).dayofyear return "taurus" case sodiacgemini(0).dayofyear sodiacgemini(1).dayofyear return "gemini" case sodiaccancer(0).dayofyear sodiaccancer(1).dayofyear return "cancer" case sodiacleo(0).dayofyear sodiacleo(1).dayofyear return "leo" case sodiacvirgo(0).dayofyear sodiacvirgo(1).dayofyear return "virgo" case sodiaclibra(0).dayofyear sodiaclibra(1).dayofyear return "libra" case sodiacscorpio(0).dayofyear sodiacscorpio(1).dayofyear return "scorpio" case sodiacsagittarius(0).dayofyear sodiacsagittarius(1).dayofyear return "sagittarius" case else return "?" end select end function
the use of annomous types , single neat linq statement way more readable imho.
Comments
Post a Comment