Mercurial > projects > dstep
view dstep/coreservices/carboncore/DateTimeUtils.d @ 11:07194b026fa4
Added bindings to a couple of frameworks, new license + some other things
author | Jacob Carlborg <doob@me.com> |
---|---|
date | Sat, 01 Aug 2009 15:03:28 +0200 |
parents | |
children |
line wrap: on
line source
/** * Copyright: Copyright (c) 2009 Jacob Carlborg. * Authors: Jacob Carlborg * Version: Initial created: Jul 21, 2009 * License: $(LINK2 http://www.boost.org/LICENSE_1_0.txt, Boost Software License 1.0) */ module dstep.coreservices.carboncore.DateTimeUtils; //import dstep.AvailabilityMacros; import dstep.coreservices.carboncore.ConditionalMacros; import dstep.coreservices.carboncore.MacTypes; import dstep.coreservices.carboncore.UTCUtils; import dstep.corefoundation.CFDate; alias short ToggleResults; alias byte LongDateField; alias byte DateForm; alias short StringToDateStatus; alias short String2DateStatus; alias DateCacheRecord* DateCachePtr; alias long LongDateTime; alias byte DateDelta; enum { toggleUndefined = 0, toggleOK = 1, toggleBadField = 2, toggleBadDelta = 3, toggleBadChar = 4, toggleUnknown = 5, toggleBadNum = 6, toggleOutOfRange = 7, toggleErr3 = 7, toggleErr4 = 8, toggleErr5 = 9 } enum { smallDateBit = 31, togChar12HourBit = 30, togCharZCycleBit = 29, togDelta12HourBit = 28, genCdevRangeBit = 27, validDateFields = -1, maxDateField = 10 } enum { eraMask = 0x0001, yearMask = 0x0002, monthMask = 0x0004, dayMask = 0x0008, hourMask = 0x0010, minuteMask = 0x0020, secondMask = 0x0040, dayOfWeekMask = 0x0080, dayOfYearMask = 0x0100, weekOfYearMask = 0x0200, pmMask = 0x0400, dateStdMask = 0x007F } enum { eraField = 0, yearField = 1, monthField = 2, dayField = 3, hourField = 4, minuteField = 5, secondField = 6, dayOfWeekField = 7, dayOfYearField = 8, weekOfYearField = 9, pmField = 10, res1Field = 11, res2Field = 12, res3Field = 13 } enum { shortDate = 0, longDate = 1, abbrevDate = 2 } enum { fatalDateTime = 0x8000, longDateFound = 1, leftOverChars = 2, sepNotIntlSep = 4, fieldOrderNotIntl = 8, extraneousStrings = 16, tooManySeps = 32, sepNotConsistent = 64, tokenErr = 0x8100, cantReadUtilities = 0x8200, dateTimeNotFound = 0x8400, dateTimeInvalid = 0x8800 } struct DateCacheRecord { short* hidden; } struct DateTimeRec { short year; short month; short day; short hour; short minute; short second; short dayOfWeek; } struct TogglePB { int togFlags; uint amChars; uint pmChars; long* reserved; } extern (C) { int UCConvertUTCDateTimeToCFAbsoluteTime (UTCDateTime* iUTCDate, CFAbsoluteTime* oCFTime); int UCConvertSecondsToCFAbsoluteTime (uint iSeconds, CFAbsoluteTime* oCFTime); int UCConvertLongDateTimeToCFAbsoluteTime (long iLongTime, CFAbsoluteTime* oCFTime); int UCConvertCFAbsoluteTimeToUTCDateTime (double iCFTime, UTCDateTime* oUTCDate); int UCConvertCFAbsoluteTimeToSeconds (double iCFTime, UInt32* oSeconds); int UCConvertCFAbsoluteTimeToLongDateTime (double iCFTime, LongDateTime* oLongDate); }