public static ISchemaType CreateInstanceByString(string newvalue) { // is it a boolean? if( newvalue.ToLower().CompareTo("false")==0 ) return new SchemaBoolean( false ); if( newvalue.ToLower().CompareTo("true")==0 ) return new SchemaBoolean( true ); // is it a kind of dateTime value? try { SchemaDateTime result = new SchemaDateTime( newvalue ); return result; } catch( StringParseException ) {} try { SchemaDuration result = new SchemaDuration( newvalue ); return result; } catch( StringParseException ) {} try { SchemaDate result = new SchemaDate( newvalue ); return result; } catch( StringParseException ) {} try { SchemaTime result = new SchemaTime( newvalue ); return result; } catch( StringParseException ) {} // is it a numeric value try { decimal tmp = Convert.ToDecimal(newvalue, CultureInfo.InvariantCulture); if( newvalue.IndexOf(".") < 0 ) { if( tmp <= Int32.MaxValue && tmp >= Int32.MinValue ) return new SchemaInt( (int)tmp ); return new SchemaLong( (long)tmp ); } else { return new SchemaDecimal( tmp ); } } catch (FormatException ) { // non of all - use string return new SchemaString( newvalue ); } }
public SchemaTime(SchemaTime obj) : base(obj) { }
public override SchemaTime TimeValue() { if ( isNull ) { SchemaTime result = new SchemaTime(); result.SetNull( true ); return result; } else if ( isEmpty ) return new SchemaTime(); else if( eTZ == ETZ.Offset ) return new SchemaTime( myValue.Hour, myValue.Minute, myValue.Second, (double)myValue.Millisecond / 1000.0, offsetTZ ); else return new SchemaTime( myValue.Hour, myValue.Minute, myValue.Second, (double)myValue.Millisecond / 1000.0 ); }