Dit is handig als je [[Obsidian]] gebruikt in combinatie met [[Obsidian Dataview]].
Helaas kan ik de actuele data niet laten zien omdat dat [[Obsidian Publish]] dat niet ondersteund.
Zorg dat je de Dataview plugin installeert en kopieer de code hieronder:
# DataviewJS - Dagen, weken, maanden, jaren optellen
## Dagen
```dataviewjs
// Dagen
let today = moment(); // Gebruikt de huidige datum als uitgangsdatum
let dayTable = [
{ type: "-1 / Gisteren", daysOffset: -1 },
{ type: "0 / Vandaag", daysOffset: 0 },
{ type: "+1 / Morgen", daysOffset: 1 },
{ type: "+7 dagen / 1 week", daysOffset: 7 },
{ type: "+14 dagen / 2 weken", daysOffset: 14 },
{ type: "+21 dagen / 3 weken", daysOffset: 21 },
{ type: "+28 dagen / 4 weken", daysOffset: 28 },
{ type: "+29 dagen", daysOffset: 29 },
{ type: "+30 dagen", daysOffset: 30 },
{ type: "+31 dagen", daysOffset: 31 }
];
dv.table(
["Dagen", "Datum", "Weekdag"],
dayTable.map(row => [
row.type,
today.clone().add(row.daysOffset, 'days').format("DD-MM-YYYY"),
today.clone().add(row.daysOffset, 'days').format("dddd")
])
);
```
## Kalender Maanden
```dataviewjs
let today = moment(); // Gebruikt de huidige datum als uitgangsdatum
// Maanden
let monthTable = [
{ type: "+1 maand", monthsOffset: 1 },
{ type: "+2 maanden", monthsOffset: 2 },
{ type: "+3 maanden", monthsOffset: 3 },
{ type: "+4 maand", monthsOffset: 4 },
{ type: "+5 maanden", monthsOffset: 5 },
{ type: "+6 maanden", monthsOffset: 6 }
];
dv.table(
["Kalender Maanden", "Datum", "Weekdag"],
monthTable.map(row => [
row.type,
today.clone().add(row.monthsOffset, 'months').format("DD-MM-YYYY"),
today.clone().add(row.monthsOffset, 'months').format("dddd")
])
);
```
## Kalender Jaren
```dataviewjs
let today = moment(); // Gebruikt de huidige datum als uitgangsdatum
// Jaren
let yearTable = [
{ type: "+1 jaar", yearsOffset: 1 },
{ type: "+5 jaar", yearsOffset: 5 },
{ type: "+10 jaar", yearsOffset: 10 }
];
dv.table(
["Kalender jaren", "Datum", "Weekdag"],
yearTable.map(row => [
row.type,
today.clone().add(row.yearsOffset, 'years').format("DD-MM-YYYY"),
today.clone().add(row.yearsOffset, 'years').format("dddd")
])
);
```
# DataviewJS - Minimale leeftijd 18
```dataviewjs
let today = moment(); // Gebruikt de huidige datum als uitgangsdatum
let table = [
{ type: "Gisteren 18 jaar", yearsOffset: -18, daysOffset: -1 },
{ type: "Vandaag 18 jaar", yearsOffset: -18, daysOffset: 0 },
{ type: "Morgen 18 jaar", yearsOffset: -18, daysOffset: 1 }
];
dv.table(
["Omschrijving", "Geboortedatum", "Weekdag"],
table.map(row => [
row.type,
today.clone().add(row.yearsOffset, 'years').add(row.daysOffset, 'days').format("DD-MM-YYYY"),
today.clone().add(row.yearsOffset, 'years').add(row.daysOffset, 'days').format("dddd")
])
);
```
# Fixed Datum
Als je op een specifieke datum test dan wil je je testdata misschien vastleggen of je wilt op basis van een specifieke datum rekenen ipv vandaag. dan moet je de eerste regel veranderen naar
```dataviewjs
// Stel een vaste datum in als basis of vraag de gebruiker deze in te stellen via een variabele
let today = moment("2024-01-01", "YYYY-MM-DD"); // Pas deze datum aan naar wens
```