digitalmars.D.learn - Get months / years between two dates.
- bauss (10/10) May 06 2020 How do you exactly do that?
- Adam D. Ruppe (7/8) May 06 2020 What's the length of a month or a year? That's the tricky part -
- bauss (4/12) May 06 2020 I actually found something. I can't rely on "approximation"
- WebFreak001 (8/18) May 07 2020 A month doesn't have a specific amount days/weeks so "what is a
- bauss (6/30) May 09 2020 Yah if you saw my second reply that's what I said I found.
How do you exactly do that? Like if I have two dates as std.datetime.DateTime How will I get the months or years between the two dates? I was surprised to learn that Duration does not support them and only has weeks, days etc. but not months or years. I can't seem to find any standard way of doing it. Will I have to calculate that myself or? I feel like that's a big thing missing if it's not there already. My use-case is simple. I need to calculate years/months since a specific date has happened.
May 06 2020
On Wednesday, 6 May 2020 at 19:51:01 UTC, bauss wrote:How will I get the months or years between the two dates?What's the length of a month or a year? That's the tricky part - they have variable lengths. So a difference of one month is not super precise. You could probably just do days / 365 or days / 30 to get a reasonable approximation but that's why the library doesn't give you an easy pre-made answer.
May 06 2020
On Wednesday, 6 May 2020 at 19:58:59 UTC, Adam D. Ruppe wrote:On Wednesday, 6 May 2020 at 19:51:01 UTC, bauss wrote:I actually found something. I can't rely on "approximation" unfortunately. DateTime apparently has a "diffMonths" function that can be used.How will I get the months or years between the two dates?What's the length of a month or a year? That's the tricky part - they have variable lengths. So a difference of one month is not super precise. You could probably just do days / 365 or days / 30 to get a reasonable approximation but that's why the library doesn't give you an easy pre-made answer.
May 06 2020
On Wednesday, 6 May 2020 at 19:51:01 UTC, bauss wrote:How do you exactly do that? Like if I have two dates as std.datetime.DateTime How will I get the months or years between the two dates? I was surprised to learn that Duration does not support them and only has weeks, days etc. but not months or years. I can't seem to find any standard way of doing it. Will I have to calculate that myself or? I feel like that's a big thing missing if it's not there already. My use-case is simple. I need to calculate years/months since a specific date has happened.A month doesn't have a specific amount days/weeks so "what is a month" cannot be answered from just the duration alone. You can use SysTime.diffMonths or DateTime.diffMonths to calculate the number of months between two dates. Years are always 12 months so you don't have to worry there and can just divide by 12 If you also want days or weeks, you will need to calculate that yourself afterwards
May 07 2020
On Thursday, 7 May 2020 at 11:40:36 UTC, WebFreak001 wrote:On Wednesday, 6 May 2020 at 19:51:01 UTC, bauss wrote:Yah if you saw my second reply that's what I said I found. It did exactly what I needed it for. What I was hoping for originally was that the duration had some "date" knowledge but that was just me being optimistic but as diffMonths solves the problem then there is no issue.How do you exactly do that? Like if I have two dates as std.datetime.DateTime How will I get the months or years between the two dates? I was surprised to learn that Duration does not support them and only has weeks, days etc. but not months or years. I can't seem to find any standard way of doing it. Will I have to calculate that myself or? I feel like that's a big thing missing if it's not there already. My use-case is simple. I need to calculate years/months since a specific date has happened.A month doesn't have a specific amount days/weeks so "what is a month" cannot be answered from just the duration alone. You can use SysTime.diffMonths or DateTime.diffMonths to calculate the number of months between two dates. Years are always 12 months so you don't have to worry there and can just divide by 12 If you also want days or weeks, you will need to calculate that yourself afterwards
May 09 2020