static bool IsDate(FuncContext fctx, int argc, Mem[] argv, out DateTime p) { int i; string z; p = new DateTime(); if (argc == 0) SetDateTimeToCurrent(fctx, p); TYPE type; if ((type = Vdbe.Value_Type(argv[0])) == TYPE.FLOAT || type == TYPE.INTEGER) { p.JD = (long)(Vdbe.Value_Double(argv[0]) * 86400000.0 + 0.5); p.ValidJD = true; } else { z = Vdbe.Value_Text(argv[0]); if (z == null || ParseDateOrTime(fctx, z, ref p)) return true; } for (i = 1; i < argc; i++) { z = Vdbe.Value_Text(argv[i]); if (z == null || ParseModifier(fctx, z, p) != RC.OK) return true; } return false; }