MKoD - D Programming Language

D Support Projects 2

Support Projects in the Red-Orbs font

This project page was created as a place to put other support sub-projects.



  • DynStrStack.d v1.0 - a General Dynamic String (char[]) Stack Class

    NOTE: The purpose of this class, is to allow any of D's basic data types to be stored into a char[] array stack without using a template approach, and to return them as a char[] for use, or they can be converted back to their original data type. Also the stack does allow for pushing and popping of wchar[]s and dchar[]s on and off the stack without any data lost.
  • -= Public class member functions =-
    • void push( in char[] ) - 100% Done, with unittests.
    • void pushW( in wchar[] ) - 100% Done, with unittests.
    • void pushD( in dchar[] ) - 100% Done, with unittests.
    • void push( in char ) - 100% Done, with unittests.
    • void pushW( in wchar ) - 100% Done, with unittests.
    • void pushD( in dchar ) - 100% Done, with unittests.
    • void push( in bit ) - 100% Done, with unittests.
    • void push( in byte ) - 100% Done, with unittests.
    • void push( in short ) - 100% Done, with unittests.
    • void push( in int ) - 100% Done, with unittests.
    • void push( in long ) - 100% Done, with unittests.
    • void push( in ubyte ) - 100% Done, with unittests.
    • void push( in ushort ) - 100% Done, with unittests.
    • void push( in uint ) - 100% Done, with unittests.
    • void push( in ulong ) - 100% Done, with unittests.
    • void push( in float ) - 100% Done, with unittests.
    • void push( in double ) - 100% Done, with unittests.
    • void push( in real ) - 100% Done, with unittests.
    • void push( in ifloat ) - 100% Done, with unittests.
    • void push( in idouble ) - 100% Done, with unittests.
    • void push( in ireal ) - 100% Done, with unittests.
    • void push( in creal ) - 100% Done, with unittests.
    • void push( in cfloat ) - 100% Done, with unittests.
    • void push( in cdouble ) - 100% Done, with unittests.
    • char[] pop() - 100% Done, with unittests.
    • char[] pop( out ubyte ) - 100% Done, with unittests.
    • wchar[] popW() - 100% Done, with unittests.
    • wchar[] popW( out ubyte ) - 100% Done, with unittests.
    • dchar[] popD() - 100% Done, with unittests.
    • dchar[] popD( out ubyte ) - 100% Done, with unittests.
    • uint length() - 100% Done, with unittests.

    -= Private class member functions =-
    • void push( in char[], in ubyte ) - 100% Done, with unittests.
    • ubyte poptype() - 100% Done, with unittests.



  • DateUtils.d v1.0 addtional date functions.

    -= MS T-SQL / Visual Basic v6.0 / Access Compatiable date functions =-
    • long getDateDiff( in char[], in char[], in char[] ) - 100% Done, with unittests.
    • long getDateDiff( in char[], in d_time, in d_time ) - 100% Done, with unittests.
    • d_time getDateAdd( in char[], in long, in d_time ) - 100% Done, with unittests.
    • d_time getDateSerial( in long, in long, in long ) - 100% Done, with unittests.
    • long getDatePart( in char[], in d_time ) - 100% Done, with unittests.

    -= Other useful date functions =-
    • int calcAge( in char[] ) - 100% Done, with unittests.
    • int calcAge( in d_time ) - 100% Done, with unittests.
    • int getDayOfYear( in char[] = "" ) - 100% Done, with unittests.
    • int getDayOfYear( in d_time ) - 100% Done, with unittests.
    • int getWeekOfYear( in char[] = "" ) - 100% Done, with unittests.
    • int getWeekOfYear( in d_time ) - 100% Done, with unittests.
    • bool isWeekday( in char[] = "" ) - 100% Done, with unittests.
    • bool isWeekday( in d_time ) - 100% Done, with unittests.
    • bool isWeekend( in char[] = "" ) - 100% Done, with unittests.
    • bool isWeekend( in d_time ) - 100% Done, with unittests.
    • int getLastDayOfMonth( in char[] = "" ) - 100% Done, with unittests.
    • int getLastDayOfMonth( in d_time ) - 100% Done, with unittests.
    • int getLastDayOfMonth( in int, in int ) - 100% Done, with unittests.
    • int getFirstWeekdayOfMonth( in char[] = "" ) - 100% Done, with unittests.
    • int getFirstWeekdayOfMonth( in d_time ) - 100% Done, with unittests.
    • int getLastWeekdayOfMonth( in char[] sDate = "" ) - 100% Done, with unittests.
    • int getLastWeekdayOfMonth( in d_time ) - 100% Done, with unittests.
    • int getQuarterInYear( in char[] = "" ) - 100% Done, with unittests.
    • int getQuarterInYear( in d_time ) - 100% Done, with unittests.
    • d_time parse( in char[], out int, out int, out int ) - 100% Done, with unittests.
    • bool inLeapYear( in char[] = "" ) - 100% Done, with unittests.
    • d_time createNewDateTime( in int, in int, in int, in int, in int, in int, in int ) - 100% Done, with unittests.

    -= Supporting functions =-
    • long roundToLong( in real ) - 100% Done.
    • int roundToInteger( in real ) - 100% Done.
    • d_time getDateOnly( in d_time ) - 100% Done.
    • d_time getTimeOnly( in d_time ) - 100% Done.
    • char[] toUTCTimeString( d_time ) - 100% Done.



  • MarsDate.d v1.0 - using D's d_time by converting the Darian Mars datetime into an UTC Earth datetime, but it can always be converted back into a valid Mars datetime for displaying and such.

    • marsdatetime getMarsDate( in d_time = d_time_nan ) - 100% Done, with unittests.
    • d_time createMarsDate( in int, in int, in int, in int = 0, in int = 0, in int = 0, in int = 0 ) - 100% Done, with unittests.
    • char[] toMarsDateString( in d_time ) - 100% Done, with unittests.
    • char[] getMarsMonthDarian( in int ) - 100% Done, with unittests.
    • char[] getAbbrevMarsMonth( in int ) - 100% Done, with unittests.
    • char[] getSolNameDarian( in int ) - 100% Done, with unittests.
    • char[] getAbbrevSolNameDarian( in int ) - 100% Done, with unittests.
    • char[] getMarsMonthDarianDefrost( in int ) - 100% Done.
    • char[] getMarsMonthDarianHensel( in int ) - 100% Done.
    • char[] getMarsMonthUtopian( in int ) - 100% Done.
    • char[] getSolNameDarianDefrost( in int ) - 100% Done.
    • char[] getSolNameUtopian( in int ) - 100% Done.
    • bool isLeapMir( in int ) - 100% Done, with unittests.
    • int getSolInMir( in d_time ) - 100% Done, with unittests.
    • int getSolsInMir( in int ) - 100% Done, with unittests.
    • int getSolsInMonth( in int, in int ) - 100% Done, with unittests.




  • MathExt.d v1.0 addtional math functions.

    • bool isprime( in ulong ) - 100% Done, with unittests.
    • bool isprimepower( in ulong ) - 100% Done, with unittests.
    • ulong gcd( in ulong, in ulong ) - 100% Done, with unittests.
    • ulong factorial( in ulong ) - 100% Done, with unittests.
    • ulong fib( in ulong ) - 100% Done, with unittests.
    • ulong gcf( in ulong, in ulong ) - 100% Done, with unittests.
    • ulong lcm( in ulong, in ulong ) - 100% Done, with unittests.



  • StringBuffer.d v1.0 a general purpose String buffer to append data into. (defaults to 64 bytes with overflow on)

    • void setsize( in int = 64 ) - 100% Done, with unittests.
    • int getsize() - 100% Done, with unittests.
    • int getpos() - 100% Done, with unittests.
    • void allowoverflow( in bool ) - 100% Done, with unittests.
    • void clear( in char = 0x20 ) - 100% Done, with unittests.
    • void append( in char[] ) - 100% Done, with unittests.
    • void append( ... ) - 100% Done, with unittests.
    • void append( in TypeInfo[] _arguments, in va_list ) - 100% Done, with unittests.
    • char[] getBuffer() - 100% Done, with unittests.



Discover Mars Magik