Já que estamos falando de literals, o Visual Basic tem algo muito legal que o C# não tem: Date Literals. Olha como eu escrevo uma data no VB:

<TestMethod()>
Public Sub ConsigoCriar13DeOutubro()
    'act
    Dim data = #10/13/2010#
    'assert
    Assert.AreEqual(New Date(2010, 10, 13), data)
End Sub

Horas também funcionam:

<TestMethod()>
Public Sub ConsigoCriar10E15()
    'act
    Dim data = #10:15:00 AM#
    'assert
    Assert.AreEqual(Date.MinValue.AddHours(10).AddMinutes(15), data)
End Sub

Com ou sem AM e PM. Aqui está no formato de 24 horas:

<TestMethod()>
Public Sub ConsigoCriar13E15()
    'act
    Dim data = #13:15:00#
    'assert
    Assert.AreEqual(Date.MinValue.AddHours(13).AddMinutes(15), data)
End Sub

E dá pra juntar os dois:

<TestMethod()>
Public Sub ConsigoCriar13DeOutubro10E15()
    'act
    Dim data = #10/13/2010 10:15:00 AM#
    'assert
    Assert.AreEqual(New Date(2010, 10, 13).AddHours(10).AddMinutes(15), data)
End Sub

Prático, né? A outra forma aparece no Assert, não fica nem um pouco elegante. Sinto falta disso no C#, principalmente por causa dos testes.

É por isso que eu adoro o VB.

Giovanni Bassi

Arquiteto e desenvolvedor, agilista, escalador, provocador. É fundador e CSA da Lambda3. Programa porque gosta. Acredita que pessoas autogerenciadas funcionam melhor e por acreditar que heterarquia é mais eficiente que hierarquia. Foi reconhecido Microsoft MVP há mais de dez anos, dos mais de vinte que atua no mercado. Já palestrou sobre .NET, Rust, microsserviços, JavaScript, TypeScript, Ruby, Node.js, Frontend e Backend, Agile, etc, no Brasil, e no exterior. Liderou grupos de usuários em assuntos como arquitetura de software, Docker, e .NET.