Creating a date adder
I see the point of the commenters: why implement this, if it has already been implemented? However, I still see benefit for such a question in an interview process. Given the right analysis, you can see how the developer thinks and what question he asks, which is IMHO more important than the actual code.

Questions could be:


What coding guidelines shall I follow?
Besides that single line description, do you have acceptance criteria?
Which unit test framework shall I use?
...





public class Date : IEquatable&lt;Date&gt;



Such low level classes use to be sealed. Could apply here as well.




public static int MaxDays(int month, int year)



Why make it public? The purpose of the class is to add days. There's nothing in the task that qualifies this method to be part of the API, IMHO. Make it private instead.



The class hardly useful, because one cannot access the properties of the changed date. There are no accessors for _month, _day and _year.



Comments: do you expect XML-doc comments on public (API) methods? You don't have them.




// [...] thinking about using in constructor for validation.



What would you do if it's invalid? Throw an exception? Well, Microsoft does it ...



Magic number:

if (month == 2)


Introduce a constant February to give it semantics.



I write code in some languages and operator precedence is always an issue. The line

if ((year % 400 == 0) || ((year % 4 == 0) &amp;&amp; (year % 100 != 0)))


is hard to understand. A method IsLeapYear() might help you out of that:

private static IsLeapYear(int year)
{
    if (year % 400 == 0) return true;
    if (year % 100 == 0) return false;
    if (year % 4 == 0) return true;
    return false;
}


At the same time it gives sematics to the magic numbers.



Why do we have AddDays() but not SubtractDays()? Can I pass a negative number for subtracting, or is subtracting not allowed? 

Your code does not seem to support subtraction, but the data type is still int and not uint.



return new Date(day, month, year);


Do you expect immutability? Why? For performance reasons / multi threading? Is this premature optimization? Immutability comes at the cost of garbage collection.



Magic number:

if (month &gt; 12)


What if the interviewed person uses _daysInMonth.Length? Is that better or worse than your implementation?



Hash codes etc.: do you provide an IDE which can generate equality members (like Jetbrains R#), or do you expect the developer to come up with that prime stuff by himself?

I have never written such code myself and actually I don't want to work in a company that expects me to write such code (except I'm applying to some security company which has to deal with hashes and encryption).