Hello statalist!

I have a dataset in long format which measure enrollment under a period of time. Even if you are enrolled more than 1 year, they are sometimes appearing under the same row (id 1) or separated in different rows (id 3)


id year start_date end_date days_between
1 2011 01/01/2011 01/03/2013
2 2007 01/06/2007 01/10/2007
3 2003 01/01/2003 31/12/2003
3 2003 01/01/2004 31/12/2004

I've figured out how to convert to date format and calculate days between. My question is how I can separate days between by years? Take id 1 as an example. The individual have start_date in 2011 and end_date in 2013. Calculate days between would give all days between 01/01/2011 and 01/03/2013, but I want days between 01/01/2011 - 31/12/2011, 01/01/2012 - 31/12/2012 and 01/01/2013 - 01/03/2013. Ideally, it would look something like this:

id start_date end_date days_between
1 01/01/2011 31/12/2011
1 01/01/2012 31/12/2012
1 01/01/2013 01/03/2013


Is this possible to achieve?

Best regards