Verifique se a hora e a data estão entre uma data e hora específicas

Eu tenho 3 variáveis;

data de início -Wed Apr 12 data final -Wed Jun 11 tempo de duração -11.00 am from 11.00 pm. (esta é uma string, 11AM é a hora de início e 12PM é a hora de término)

1.) Agora, eu preciso obter a data e hora atuais ([NSDate date] ) e verifique se a data atual é entrestartDate eendDate e, em seguida, verifique se a hora atual é entre otimeDuration (como entre11.00am from 11.00pm)

2.) Se a hora atual estiver entre a duração do tempo (como entre11.00 am from 11.00 pm) Preciso calcular o tempo restante para os seguintes cenários;

a.) Se a hora é 10h, eu preciso calcular o tempo para a hora de início que é11.00am. (a resposta é1 hour).

b.) Se o tempo for11.45AM, uma vez que o tempo é maior que o horário de início (que era11.00am) eu preciso calcular o tempo restante para o tempo final (que é11.00pm).

c.) Se o tempo for11.45pm, uma vez que o tempo é maior que o tempo final (que é11.00pm), eu preciso imprimir um NSLog dizendo que 'Time Excedido'.