예제 #1
0
 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;
 }