That (extended initializer lists) is not supported with plain C (it is supported with C++11).
So you have to set each member, use an additional struct as suggested in solution 1, or use a helper function:
void setEmployeeDate(struct employee *e, int day, int month, int year)
{
e->datehired.day = day;
e->datehired.month = month;
e->datehired.year = year;
}
for(i=0; i<3; i++)
setEmployeeDate(&e[i], 2, 2, 16);