diff src/nabble/view/web/template/DateNamespace.java @ 0:7ecd1a4ef557

add content
author Franklin Schmidt <fschmidt@gmail.com>
date Thu, 21 Mar 2019 19:15:52 -0600
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/nabble/view/web/template/DateNamespace.java	Thu Mar 21 19:15:52 2019 -0600
@@ -0,0 +1,50 @@
+package nabble.view.web.template;
+
+import nabble.naml.compiler.Command;
+import nabble.naml.compiler.CommandSpec;
+import nabble.naml.compiler.IPrintWriter;
+import nabble.naml.compiler.Interpreter;
+import nabble.naml.compiler.Namespace;
+
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
+
+@Namespace (
+	name = "date",
+	global = false
+)
+public final class DateNamespace {
+	private final Date date;
+
+	public DateNamespace(Date date) {
+		this.date = date;
+	}
+
+	@Command public void raw_time(IPrintWriter out,Interpreter interp) {
+		out.print( date.getTime() );
+	}
+
+	public static final CommandSpec custom_format = new CommandSpec.Builder()
+		.parameters("format")
+		.build()
+	;
+
+	@Command public void custom_format(IPrintWriter out, Interpreter interp) {
+		String format = interp.getArgString("format");
+		out.print(new SimpleDateFormat(format).format(date));
+	}
+
+	public static final CommandSpec is_older_than = new CommandSpec.Builder()
+		.parameters("days")
+		.build()
+	;
+
+	@Command public void is_older_than(IPrintWriter out, Interpreter interp) {
+		int days = interp.getArgAsInt("days");
+		long diffFromNow = System.currentTimeMillis() - date.getTime();
+		float daysFromNow = diffFromNow / (24 * 60 * 60 * 1000);
+		out.print(daysFromNow > days);
+	}
+
+}