Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug report #715

Open
AngelCherub opened this issue Dec 8, 2021 · 6 comments
Open

Bug report #715

AngelCherub opened this issue Dec 8, 2021 · 6 comments
Assignees

Comments

@AngelCherub
Copy link

@AngelCherub AngelCherub commented Dec 8, 2021

What happened?

The table below is using a duration query to work out the amount of time elapsed since a specific start date: 2021-10-19

When parsed, the query says 15 November is 3 weeks and 6 days since the start date.

It then says that 16 November is 1 month since the start date.

It then says that 17 November is 1 month and 1 day since the start date.

It then says that 18 November is 1 month since the start date.

It then says that 19 November is also 1 month since the start date.

It then says that 20 November is 1 month and 1 day since the start date.

a52ee6627bba0d9982bac7587650145f043b7644

Am I doing something wrong or is this a bug?

Thanks

Angel

DQL

**Date** | **Duration**
:------------ | :------------
2021-11-15 | `=date(2021-11-15) - date(2021-10-19)`
2021-11-16 | `=date(2021-11-16) - date(2021-10-19)`
2021-11-17 | `=date(2021-11-17) - date(2021-10-19)`
2021-11-18 | `=date(2021-11-18) - date(2021-10-19)`
2021-11-19 | `=date(2021-11-19) - date(2021-10-19)`
2021-11-20 | `=date(2021-11-20) - date(2021-10-19)`

JS

No response

Dataview Version

0.4.21

Obsidian Version

0.12.19

OS

MacOS

@mnvwvnm
Copy link
Collaborator

@mnvwvnm mnvwvnm commented Dec 8, 2021

I add this question: as dateformat() to define the date format output, there's any kind of durationformat() to define duration format?

@blacksmithgu
Copy link
Owner

@blacksmithgu blacksmithgu commented Dec 10, 2021

That looks like a bug, and a very odd one at that. Perhaps I'm doing date-date subtraction or rendering incorrectly?

@AngelCherub
Copy link
Author

@AngelCherub AngelCherub commented Dec 16, 2021

Wish I had the brains to answer that question, but I don't. Thanks for looking at the issue.

Angel

@blacksmithgu
Copy link
Owner

@blacksmithgu blacksmithgu commented Jan 21, 2022

I dug into this more and it turns out this is kind of complicated, but it's because Luxon considers '28 days', '30 days' and '31 days' to all be '1 month'; it also takes daylight savings time into consideration as well, which is a little annoying.

This seems like a very tricky fix; I underestimated how difficult durations are to work with! I'll have to think on this a little more on how to make it ergonomic.

@AngelCherub
Copy link
Author

@AngelCherub AngelCherub commented Jan 22, 2022

Understand the explanation. Gulp. Very tricky. Thanks for looking into it.

Angel

@AngelCherub
Copy link
Author

@AngelCherub AngelCherub commented Feb 10, 2022

I noticed today that a simple count of just days in isolation (no years, months, or weeks) leads to a miscalculation in DV. DVJS appears to get it right. Don't know if this is related or helpful, but ...

https://forum.obsidian.md/t/how-to-calculate-duration-between-dates-in-dataview/31225/14

Angel

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
3 participants