Bug 522099 - Calendar Applet: Vietnamese Lunar Calendar displays incorrect dates in Plasma 6.7
Summary: Calendar Applet: Vietnamese Lunar Calendar displays incorrect dates in Plasma...
Status: RESOLVED FIXED
Alias: None
Product: plasmashell
Classification: Plasma
Component: Calendar widget (other bugs)
Version First Reported In: 6.7.0
Platform: Other Other
: NOR normal
Target Milestone: 1.0
Assignee: Plasma Bugs List
URL:
Keywords:
: 521959 (view as bug list)
Depends on:
Blocks:
 
Reported: 2026-06-24 04:22 UTC by maildkttk
Modified: 2026-06-29 18:34 UTC (History)
4 users (show)

See Also:
Latest Commit:
Version Fixed/Implemented In: 6.7.2
Sentry Crash Report:


Attachments
Web and widget (378.97 KB, application/x-gzip)
2026-06-24 04:22 UTC, maildkttk
Details

Note You need to log in before you can comment on or make changes to this bug.
Description maildkttk 2026-06-24 04:22:43 UTC
Created attachment 193628 [details]
Web and widget

DESCRIPTION
The Vietnamese Lunar Calendar (introduced in Plasma 6.7) displays incorrect lunar dates compared to the actual and official Vietnamese lunar calendar. This discrepancy can cause significant confusion for users relying on it for traditional events.

STEPS TO REPRODUCE
1. Add the Digital Clock / Calendar widget to the panel.
2. Enable the Vietnamese Lunar Calendar alternate calendar option in the widget settings.
3. Open the calendar and compare the lunar dates with the standard Vietnamese lunar calendar.

OBSERVED RESULT
The lunar dates shown in the Plasma calendar widget are incorrect. I have confirmed this discrepancy by cross-checking with a standard smartphone calendar. (Please see the attached screenshot comparing the widget and a correct calendar website).

EXPECTED RESULT
The lunar dates should accurately match the official Vietnamese lunar calendar (e.g., as shown on reference sites like https://www.xemlicham.com/ and standard mobile devices).

SOFTWARE/OS VERSIONS
Operating System: Fedora Linux 44
KDE Plasma Version: 6.7.0
KDE Frameworks Version: 6.27.0
Qt Version: 6.11.1
Kernel Version: 7.0.12-201.fc44.x86_64 (64-bit)
Graphics Platform: Wayland

ADDITIONAL INFORMATION
I am an end-user and noticed this issue. For precise technical details regarding the Vietnamese calendar implementation or community verification, developers may also reach out to the local Vietnamese Linux community at https://vietnamlinuxfamily.net/ (who recently released the CaramOS distribution at https://caramos.vietnamlinuxfamily.net/).
Comment 1 Farran 2026-06-24 14:32:05 UTC
(In reply to maildkttk from comment #0)

> EXPECTED RESULT
> The lunar dates should accurately match the official Vietnamese lunar
> calendar (e.g., as shown on reference sites like https://www.xemlicham.com/
> and standard mobile devices).

Thanks for reporting this!
I didn't notice; I live in Viet Nam but I don't really use calendars in my daily life. 

This is strange, I wonder why the dates are wrong. 

Every Vietnamese-made lunar calendar I've seen online and in apps so far seems to use the same code as one of the first (if not the very first) digital lunar calendar, programmed by Hồ Ngọc Đức (also the same person who wrote the trilingual dictionary between Vietnamese, English and German, and thus is responsible for the vast majority of VN-EN-DE Wiktionary). 

Even government websites use this code. 

You can see the calendar here: 
https://honguyenviet.com/amlich/javascript/currentmonth.html 
(It used to be hosted on Leipzig University's servers, where alumni could host their own personal websites; but his seems to have disappeared in the last few years.) 

If the Vietnamese Linux community don't have a specific solution, then I'd propose that this code is used directly, because it's been in use for years (if not decades), and it is what most (if not all) digital calendars inside Viet Nam are based on.
Comment 2 Farran 2026-06-24 14:47:20 UTC
Sorry to double-post -- I've just discovered the discrepancy. 

In May, on the 16th, the 3rd-Lunar Month had a 30th day; but this date was skipped in the KDE/Plasma/widget calendar. 

In reality, 16th of May was the 30th of the 3rd-Lunar Month. 
In KDE, 16th May is marked as 1st of the 4th-Lunar Month. 
In reality, 17th of May should be the 1st of the 4th-Lunar Month. 

On further exploration back and forward in time through the calendar widget, I can see that this error actually occurs multiple times throughout the year; I don't know why, but it looks to me as if the lunar month lengths have been hard-coded -- incorrectly -- rather than calculated or derived. 

If I had to guess (and that's all I can do), I'd say that probably the lunar months are 29 and 30 days long, but that the lengths differ each year, based both on the Moon and on the length of the lunar year, because Tết (lunar new year) falls on a different day every solar year. 
I would guess that the month lengths of another year have been transposed onto every year.
Comment 3 maildkttk 2026-06-24 20:12:18 UTC
The newly introduced Vietnamese Lunar Calendar in Plasma 6.7 has an error (even the screenshot on the official announcement link here https://kde.org/announcements/plasma/6/6.7.0/#vietnamese-lunar-calendar is incorrect).
When compared to a smartphone calendar, the widget displays the wrong dates. I have attached a zip file with screenshots describing the issue: web.png shows the correct date, and widget.png shows the incorrect display. Hope this helps the developers fix it quickly.
Comment 4 Trần Nam Tuấn (Bill) 2026-06-28 03:21:17 UTC
This should be fixed with https://invent.kde.org/plasma/kdeplasma-addons/-/merge_requests/1085. Sorry to have missed this.
Comment 5 Nate Graham 2026-06-29 16:23:59 UTC
Git commit 3b380dd8c1881fde131675ce852bd93384e5e71b by Nate Graham, on behalf of Trần Nam Tuấn.
Committed on 29/06/2026 at 16:23.
Pushed by ngraham into branch 'master'.

[Vietnamese Lunar Calendar] Fix midnight JDE rounding in getLocalDayIndex

The `+ 0.5` offset intended to shift the Julian Date reference point from noon
to local midnight (UTC+7) was placed outside `std::floor()`, making it a no-op by
the `qint64` cast. This caused `getLocalDayIndex` to return the previous day for
any astronomical event occurring between local midnight and noon, shifting the
lunar day count one too high.

Quite frankly, it is embarrassing that I missed this.

M  +1    -1    plasmacalendarplugins/alternatecalendar/provider/vietnamesecalendar.cpp

https://invent.kde.org/plasma/kdeplasma-addons/-/commit/3b380dd8c1881fde131675ce852bd93384e5e71b
Comment 6 Nate Graham 2026-06-29 16:24:30 UTC
Git commit c107b2127a11aa66177dabd2be7382056e721c6f by Nate Graham.
Committed on 29/06/2026 at 16:24.
Pushed by ngraham into branch 'Plasma/6.7'.

[Vietnamese Lunar Calendar] Fix midnight JDE rounding in getLocalDayIndex

The `+ 0.5` offset intended to shift the Julian Date reference point from noon
to local midnight (UTC+7) was placed outside `std::floor()`, making it a no-op by
the `qint64` cast. This caused `getLocalDayIndex` to return the previous day for
any astronomical event occurring between local midnight and noon, shifting the
lunar day count one too high.

Quite frankly, it is embarrassing that I missed this.


(cherry picked from commit 3b380dd8c1881fde131675ce852bd93384e5e71b)

Co-authored-by: Trần Nam Tuấn <tuantran1632001@gmail.com>

M  +1    -1    plasmacalendarplugins/alternatecalendar/provider/vietnamesecalendar.cpp

https://invent.kde.org/plasma/kdeplasma-addons/-/commit/c107b2127a11aa66177dabd2be7382056e721c6f
Comment 7 Trần Nam Tuấn (Bill) 2026-06-29 18:34:38 UTC
*** Bug 521959 has been marked as a duplicate of this bug. ***