using static System.Console;
using System;
 
public class Program {
	public static void Main() {
		DateTime dt = DateTime.Now;
		DateTime? dtn = null;
		WriteLine(dt);
		WriteLine(dtn);
		dtn = dt;
		WriteLine(dtn);
		dt = dtn ?? default(DateTime); //daria erro de compilação se não fizesse esta verificação
		WriteLine(dtn);
		dt = dtn.GetValueOrDefault(); //também pode usar isto
		WriteLine(dtn);
		dt = dtn.GetValueOrDefault(); //também pode usar isto
		WriteLine(dtn);
		if (dtn != null) WriteLine("tem valor");
		if (dtn.HasValue) WriteLine("tem valor");
	}
}
 
//https://pt.stackoverflow.com/q/125827/101
				dXNpbmcgc3RhdGljIFN5c3RlbS5Db25zb2xlOwp1c2luZyBTeXN0ZW07CgkJCQkJCnB1YmxpYyBjbGFzcyBQcm9ncmFtIHsKCXB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkgewoJCURhdGVUaW1lIGR0ID0gRGF0ZVRpbWUuTm93OwoJCURhdGVUaW1lPyBkdG4gPSBudWxsOwoJCVdyaXRlTGluZShkdCk7CgkJV3JpdGVMaW5lKGR0bik7CgkJZHRuID0gZHQ7CgkJV3JpdGVMaW5lKGR0bik7CgkJZHQgPSBkdG4gPz8gZGVmYXVsdChEYXRlVGltZSk7IC8vZGFyaWEgZXJybyBkZSBjb21waWxhw6fDo28gc2UgbsOjbyBmaXplc3NlIGVzdGEgdmVyaWZpY2HDp8OjbwoJCVdyaXRlTGluZShkdG4pOwoJCWR0ID0gZHRuLkdldFZhbHVlT3JEZWZhdWx0KCk7IC8vdGFtYsOpbSBwb2RlIHVzYXIgaXN0bwoJCVdyaXRlTGluZShkdG4pOwoJCWR0ID0gZHRuLkdldFZhbHVlT3JEZWZhdWx0KCk7IC8vdGFtYsOpbSBwb2RlIHVzYXIgaXN0bwoJCVdyaXRlTGluZShkdG4pOwoJCWlmIChkdG4gIT0gbnVsbCkgV3JpdGVMaW5lKCJ0ZW0gdmFsb3IiKTsKCQlpZiAoZHRuLkhhc1ZhbHVlKSBXcml0ZUxpbmUoInRlbSB2YWxvciIpOwoJfQp9CgovL2h0dHBzOi8vcHQuc3RhY2tvdmVyZmxvdy5jb20vcS8xMjU4MjcvMTAx