summaryrefslogtreecommitdiff
path: root/services/TimeDate.qml
diff options
context:
space:
mode:
authorlittleblack111 <littleblack11111@gmail.com>2025-08-16 16:23:20 +0800
committerlittleblack111 <littleblack11111@gmail.com>2025-08-16 16:23:20 +0800
commit4fe12bbabfe2bb4c468c66348afedb34aee0b783 (patch)
tree904ce21bf2b39d988483d91a585a23ede5da424b /services/TimeDate.qml
parentc4eca807dacd407af939c2200055acb4326ccfe0 (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.qml48
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