<$list filter="[field:due/^2019(1|2)/]+[!sort[due]]"><$link to={{!!title}}><$view field="title"/></$link> - <$view field="due"/><br></$list>
some other event - 20191227Christmas - 20191225some event - 20191220Haircut - 20191203vets - 20191125do registration - 20191101refill hydrocollator - 20191028Put words in rm - 120191017research windows den - 20191005
<<calc !!due - by:mynow!!mynow>> days
function daydiff() { var date1 = new Date("7/13/2010");var date2 = new Date("12/15/2010");var timeDiff = Math.abs(date2.getTime() - date1.getTime());var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));return diffDays} console.log(daydiff())
\define g(y,m,d,offset:"0")
<$set name=m value={{{ [<__m__>add[9]remainder[12]] }}}>
<$set name=y value={{{ [<m>divide[10]floor[]negate[]add<__y__>] }}} >
<$set name=y4 value={{{ [<y>divide[4]floor[]] }}}>
<$set name=y100 value={{{ [<y>divide[100]floor[]] }}}>
<$set name=y400 value={{{ [<y>divide[400]floor[]] }}}>
<$set name=m306 value={{{ [<m>multiply[306]add[5]divide[10]floor[]] }}}>
<$set name=result value={{{ [[365]multiply<y>add<y4>subtract<y100>add<y400>add<m306>add[$d$]add[$offset$]subtract[1]] }}} >
<<result>>
</$set></$set></$set></$set></$set></$set></$set>
\end
\define d(g)
<$set name=daysperyear value="365.2425">
<!-- y = (10000*g + 14780)/3652425 -->
<$set name=y value={{{ [[10000]multiply<__g__>add[14780]divide[3652425]floor[]] }}}>
<!-- ddd = g - (365*y + y/4 - y/100 + y/400) -->
<$set name=y4 value={{{ [<y>divide[4]floor[]] }}}>
<$set name=y100 value={{{ [<y>divide[100]floor[]] }}}>
<$set name=y400 value={{{ [<y>divide[400]floor[]] }}}>
<$set name=dddtest value={{{ [[365]multiply<y>add<y4>subtract<y100>add<y400>negate[]add<__g__>] }}} >
<$set name=prioryear value={{{ [<y>subtract[1]] }}} >
<$set name=y value={{{ [<dddtest>prefix[-]then<prioryear>] [<dddtest>!prefix[-]then<y>] }}} >
<$set name=ddd value={{{ [[365]multiply<y>add<y4>subtract<y100>add<y400>negate[]add<__g__>] }}} >
<!-- mi = (100*ddd + 52)/3060 -->
<$set name=mi value={{{ [[100]multiply<ddd>add[52]divide[3060]floor[]] }}} >
<!-- mm = (mi + 2)%12 + 1 -->
<$set name=mm value={{{ [<mi>add[2]remainder[12]add[1]] }}} >
<!-- y = y + (mi + 2)/12 -->
<$set name=y value={{{ [<mi>add[2]divide[12]floor[]add<y>] }}} >
<!-- dd= ddd - (mi*306 + 5)/10 + 1 -->
<$set name=dd value={{{ [<mi>multiply[306]add[5]divide[10]floor[]negate[]add<ddd>add[1]] }}} >
<<y>>, <<mm>>, <<dd>> <br/>
</$set></$set></$set></$set></$set></$set></$set></$set></$set></$set></$set></$set></$set>
\end
\define daysfrom(y,m,d,o)
<$wikify name=future text="<<g $y$ $m$ $d$ $o$>>">
<$macrocall $name="d" g=<<future>>/>
</$wikify>
\end
Days from: <<daysfrom 2019 10 21 11>>
<<day-diff 2019 11 27 2020 02 14>> days
<$macrocall $name="day-diff" param1={{!!due2}} param2={{mynow!!mynow2}}/> days
\define day-dif(parameter names)
<$macrocall $name=day-diff year1={{mynow!!year}} month1={{mynow!!month}} day1={{mynow!!day}} year2={{!!duey}} month2={{!!duem}} day2={{!!dued}}/>
/*\
title: $:/inmysocks/macros/day-diff2.js
type: application/javascript
module-type: macro
Takes two dates and returns their difference in days
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
/*
Information about this macro
*/
exports.name = "day-diff2";
exports.params = [
{name: "mydate1"},
{name: "mydate2"}
];
/*
Run the macro
*/
exports.run = function(mydate1, mydate2) {
//Make each date object.
var date1 = new Date(mydate1);
var date2 = new Date(mydate2);
//Find difference in milliseconds.
var elapsed = date2.getTime()-date1.getTime();
//Number of milliseconds in a day.
var dayMS = 86400000;
//Convert milliseconds to year months and days
var days_diff = Math.floor(elapsed/dayMS);
var result = days_diff;
return result;
};
})();
/*\title: $:/inmysocks/macros/day-diff2.jstype: application/javascriptmodule-type: macro
Takes two dates and returns their difference in days
\*/(function(){
/*jslint node: true, browser: true *//*global $tw: false */"use strict";
/*Information about this macro*/
exports.name = "day-diff2";
exports.params = [
{name: "duedate"}
];
/*Run the macro*/
exports.run = function(duedate) { //Make each date object. var date1 = new Date(); var mydate = new Date(duedate); var year = mydate.substring(0,4); var month = mydate.substring(4,6); var day = mydate.substring(6,8); var date2 = year + '-' + month + '-' + day;
//Find difference in milliseconds. var elapsed = date2.getTime()-date1.getTime();
//Number of milliseconds in a day. var dayMS = 86400000;
//Convert milliseconds to year months and days var days_diff = Math.floor(elapsed/dayMS); var result = days_diff;
return date2;};
})();
exports.run = function(duedate) { //Make each date object. var date1 = new Date(); var mydate = new Date(duedate);
var year = mydate.getUTCFullYear(); var month = mydate.getUTCMonth();
var day = mydate.getUTCDate(); var date2 = new Date(year, month, day);
//Find difference in milliseconds. var elapsed = date2.getTime()-date1.getTime();
//Number of milliseconds in a day. var dayMS = 86400000;
//Convert milliseconds to year months and days var days_diff = Math.floor(elapsed/dayMS); var result = days_diff;
return year;};
var d = new Date("July 21, 1983 01:15:00");
var d = new Date("2020-02-14");
var d = new Date("20200214");
/*\title: $:/inmysocks/macros/day-diff2.jstype: application/javascriptmodule-type: macro
Takes two dates and returns their difference in days
\*/(function(){
/*jslint node: true, browser: true *//*global $tw: false */"use strict";
/*Information about this macro*/
exports.name = "day-diff2";
exports.params = [ {name: "duedate"}];
/*Run the macro*/
exports.run = function(duedate) { //Make each date object. var date1 = new Date();
var d = duedate; var year = d.substring(0, 4); var month = d.substring(4, 6); var month2 = month - 1; var day = d.substring(6, 8); var date2 = new Date(year, month2, day);
//Find difference in milliseconds. var elapsed = date2.getTime()-date1.getTime();
//Number of milliseconds in a day. var dayMS = 86400000;
//Convert milliseconds to year months and days var days_diff = Math.floor(elapsed/dayMS); var result = days_diff;
return result;};
})();
\define YYYY(fieldname)<$set name=date-field value=<<date-field>> emptyValue="$fieldname$"><$set name=date-field value=<<date-field>> emptyValue="created"><$view field=<<date-field>> format="date" template="YYYY"/></$set></$set>\end\define 0MM(fieldname)<$set name=date-field value=<<date-field>> emptyValue="$fieldname$"><$set name=date-field value=<<date-field>> emptyValue="created"><$view field=<<date-field>> format="date" template="0MM"/></$set></$set>\end\define 0DD(fieldname)<$set name=date-field value=<<date-field>> emptyValue="$fieldname$"><$set name=date-field value=<<date-field>> emptyValue="created"><$view field=<<date-field>> format="date" template="0DD"/></$set></$set>\end\define 0hh(fieldname)<$set name=date-field value=<<date-field>> emptyValue="$fieldname$"><$set name=date-field value=<<date-field>> emptyValue="created"><$view field=<<date-field>> format="date" template="0hh"/></$set></$set>\end\define 0mm(fieldname)<$set name=date-field value=<<date-field>> emptyValue="$fieldname$"><$set name=date-field value=<<date-field>> emptyValue="created"><$view field=<<date-field>> format="date" template="0mm"/></$set></$set>\end\define 0ss(fieldname)<$set name=date-field value=<<date-field>> emptyValue="$fieldname$"><$set name=date-field value=<<date-field>> emptyValue="created"><$view field=<<date-field>> format="date" template="0ss"/></$set></$set>\end\define 0XXX(fieldname)<$set name=date-field value=<<date-field>> emptyValue="$fieldname$"><$set name=date-field value=<<date-field>> emptyValue="created"><$view field=<<date-field>> format="date" template="0XXX"/></$set></$set>\end
;Examples:Defaut to created on current tiddler {{!!created}}:YYYY=<<YYYY>>:0MM=<<0MM>>:0DD=<<0DD>> :0hh=<<0hh>>:0mm=<<0mm>>:0ss=<<0ss>>:0XXX=<<0XXX>>
;Default field override to modified {{!!modified}}:<<0DD modified>>/<<0MM modified>>/<<YYYY modified>> at <<0hh modified>>:<<0mm modified>>
;Set a variable as the fieldname set a fieldname a-date-field with value 20180105:Note this is a partial serial number and returns only what is in the date field.<$set name=date-field value="a-date-field">
:YYYY=<<YYYY>>:0MM=<<0MM>>:0DD=<<0DD>> :0hh=<<0hh>>:0mm=<<0mm>>:0ss=<<0ss>>:0XXX=<<0XXX>></$set>
<<date-time [template] [date-field]>>
<$macrocall $name=date-time template=[value] date-field=[value]>
YYYY-0MM-0DD 0hh:0mm:0ss Local time
, Set in $:/config/now-format<<date-time>>
> true Now!<<date-time "Year made YYYY">>
> Year made 2019 Tiddler created date used<<date-time "Hour changed 0hh" modified>>
> Hour changed 12 Tiddler modified date used<$set name-date-field value=my-date-field>
code <<YYYY>> <<0MM>> and more code
</$set>
\define date-time(template date-field)<$set name=date-field value=<<date-field>> emptyValue="$date-field$">
<$set name=date-field value=<<date-field>> emptyValue="created"><$macrocall $name=return-date-time template=<<template>>/></$set></$set></$set>\end\define return-date-time(template)<$view field=<<date-field>> format="date" template="$template$"/>\end
<<date-time "YYYY-0MM-0DD hh:0mm">><<date-time "Modified YYYY-0MM-0DD at hh:0mm" modified>>
That looks cool, do you have any more examples of it in use in a TW somewhere? I pasted all that in a tiddler but don't quite get how they work
\define date-time(template date-field)
<$set name=template value="$template$" emptyValue="""<$macrocall $name="now" format={{$:/config/now-format}} />""" >
<$set name=date-field value=<<date-field>> emptyValue="$date-field$">
<$set name=date-field value=<<date-field>> emptyValue="created">
<$macrocall $name=return-date-time template=<<template>>/>
</$set></$set></$set>
\end
\define return-date-time(template)
<$view field=<<date-field>> format="date" template="$template$"/>
\end
$:/config/now-format example = hh:0mm
<<date-time "YYYY-0MM-0DD hh:0mm">>
<<date-time "Modified YYYY-0MM-0DD at hh:0mm" modified>>
:Can also set variable date-field