Jump to content

Cheryl's birthday: Difference between revisions

m (→‎{{header|Factor}}: dupd tuck is equivalent to 2dup)
Line 1,737:
End Sub</lang>{{out}}
<pre>July 16</pre>
=={{header|Visual Basic .NET}}==
{{trans|C#}}
<lang vbnet>Module Module1
 
Structure MonDay
Dim month As String
Dim day As Integer
 
Sub New(m As String, d As Integer)
month = m
day = d
End Sub
 
Public Overrides Function ToString() As String
Return String.Format("({0}, {1})", month, day)
End Function
End Structure
 
Sub Main()
Dim dates = New HashSet(Of MonDay) From {
New MonDay("May", 15),
New MonDay("May", 16),
New MonDay("May", 19),
New MonDay("June", 17),
New MonDay("June", 18),
New MonDay("July", 14),
New MonDay("July", 16),
New MonDay("August", 14),
New MonDay("August", 15),
New MonDay("August", 17)
}
Console.WriteLine("{0} remaining.", dates.Count)
 
' The month cannot have a unique day.
Dim monthsWithUniqueDays = dates.GroupBy(Function(d) d.day).Where(Function(g) g.Count() = 1).Select(Function(g) g.First().month).ToHashSet()
dates.RemoveWhere(Function(d) monthsWithUniqueDays.Contains(d.month))
Console.WriteLine("{0} remaining.", dates.Count)
 
' The day must now be unique.
dates.IntersectWith(dates.GroupBy(Function(d) d.day).Where(Function(g) g.Count() = 1).Select(Function(g) g.First()))
Console.WriteLine("{0} remaining.", dates.Count)
 
' The month must now be unique.
dates.IntersectWith(dates.GroupBy(Function(d) d.month).Where(Function(g) g.Count() = 1).Select(Function(g) g.First()))
Console.WriteLine(dates.Single())
End Sub
 
End Module</lang>
{{out}}
<pre>10 remaining.
5 remaining.
3 remaining.
(July, 16)</pre>
 
=={{header|zkl}}==
<lang zkl>dates:=T(T("May", 15), T("May", 16), T("May", 19),
1,452

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.