diff options
| author | littleblack111 <littleblack11111@gmail.com> | 2025-08-16 16:23:20 +0800 |
|---|---|---|
| committer | littleblack111 <littleblack11111@gmail.com> | 2025-08-16 16:23:20 +0800 |
| commit | 4fe12bbabfe2bb4c468c66348afedb34aee0b783 (patch) | |
| tree | 904ce21bf2b39d988483d91a585a23ede5da424b /services/TimeDate.qml | |
| parent | c4eca807dacd407af939c2200055acb4326ccfe0 (diff) | |
feat(Clip): metadatas(app it's taken from, timestamp)
Persistent and Directories are partially copied from end4-dots
which is GPL Licensed
Diffstat (limited to 'services/TimeDate.qml')
| -rw-r--r-- | services/TimeDate.qml | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/services/TimeDate.qml b/services/TimeDate.qml index fab2beb..f066f46 100644 --- a/services/TimeDate.qml +++ b/services/TimeDate.qml @@ -27,6 +27,54 @@ Singleton { readonly property string date: Qt.formatDateTime(clock.date, "dddd dd/MM") + function sinceWhen(d) { + if (typeof d === "string") + return; + + var now = clock.date; + + function startOfDay(x) { + return new Date(x.getFullYear(), x.getMonth(), x.getDate(), 0, 0, 0, 0); + } + + function startOfWeek(x) { + var dow = x.getDay(); + var mondayOffset = (dow + 6) % 7; + var sod = startOfDay(x); + sod.setDate(sod.getDate() - mondayOffset); + return sod; + } + + function fmt12h(dateObj) { + var h24 = dateObj.getHours(); + var m = dateObj.getMinutes(); + var h12 = h24 % 12; + if (h12 === 0) + h12 = 12; + var ampm = h24 < 12 ? "AM" : "PM"; + return ((h12 < 10 ? "0" : "") + h12 + ":" + (m < 10 ? "0" : "") + m + " " + ampm); + } + + function weekdayName(dateObj) { + return Qt.formatDateTime(dateObj, "dddd"); + } + + var nowSOD = startOfDay(now).getTime(); + var dSOD = startOfDay(d).getTime(); + if (nowSOD === dSOD) { + return fmt12h(d); + } + + var nowSOW = startOfWeek(now).getTime(); + var dSOW = startOfWeek(d).getTime(); + if (nowSOW === dSOW) { + return weekdayName(d) + " " + fmt12h(d); + } + + var ymd = Qt.formatDateTime(d, "yyyy-MM-dd"); + return ymd + " at " + fmt12h(d); + } + SystemClock { id: clock precision: SystemClock.Seconds |
