Tuesday, September 25, 2007

Some truth about software consulting



Somehow this poster [from Despair, Inc.] always makes a lot of sense.

Saturday, September 15, 2007

Accidents de voiture : Tunnels Russe

It must be the vodka!

The Bus Lane

Always respect the bus lane .. or else ... well, see for yourselves

Wednesday, September 12, 2007

How to get a random date in C#

I looked everywhere for a sample on generating random dates in C# but could find any so I wrote mine.


private static DateTime getRandomDate(Random rand,
DateTime minDate, DateTime maxDate)
{
int totalDays = (int)DateTimeUtil.DateDiff(
DateInterval.Day , minDate, maxDate);
int randomDays = rand.Next(0,totalDays);
return minDate.AddDays(randomDays);

}


This function uses the DateTime utility class below which I found somewhere on the web.

public enum DateInterval
{
Day,
DayOfYear,
Hour,
Minute,
Month,
Quarter,
Second,
Weekday,
WeekOfYear,
Year
}

///

public sealed class DateTimeUtil
{

#region DateDiff Methods

public static long DateDiff(DateInterval interval,
DateTime dt1, DateTime dt2)
{

return DateDiff(interval, dt1, dt2, System.Globalization
.DateTimeFormatInfo.CurrentInfo.FirstDayOfWeek);

}

private static int GetQuarter(int nMonth)
{
if (nMonth <= 3)
return 1;
if (nMonth <= 6)
return 2;
if (nMonth <= 9)
return 3;
return 4;
}

public static long DateDiff(DateInterval interval,
DateTime dt1, DateTime dt2, DayOfWeek eFirstDayOfWeek)
{

if (interval == DateInterval.Year)

return dt2.Year - dt1.Year;

if (interval == DateInterval.Month)

return (dt2.Month - dt1.Month) +
(12 * (dt2.Year - dt1.Year));

TimeSpan ts = dt2 - dt1;

if (interval == DateInterval.Day ||
interval == DateInterval.DayOfYear)
return Round(ts.TotalDays);

if (interval == DateInterval.Hour)
return Round(ts.TotalHours);

if (interval == DateInterval.Minute)
return Round(ts.TotalMinutes);

if (interval == DateInterval.Second)

return Round(ts.TotalSeconds);

if (interval == DateInterval.Weekday)
{
return Round(ts.TotalDays / 7.0);
}

if (interval == DateInterval.WeekOfYear)
{
while (dt2.DayOfWeek != eFirstDayOfWeek)
dt2 = dt2.AddDays(-1);
while (dt1.DayOfWeek != eFirstDayOfWeek)
dt1 = dt1.AddDays(-1);
ts = dt2 - dt1;
return Round(ts.TotalDays / 7.0);
}

if (interval == DateInterval.Quarter)
{
double d1Quarter = GetQuarter(dt1.Month);
double d2Quarter = GetQuarter(dt2.Month);
double d1 = d2Quarter - d1Quarter;
double d2 = (4 * (dt2.Year - dt1.Year));
return Round(d1 + d2);
}
return 0;
}

private static long Round(double dVal)
{
if (dVal >= 0)
return (long)Math.Floor(dVal);
return (long)Math.Ceiling(dVal);
}
#endregion
}

Thursday, September 06, 2007

Visual Studio is a memory hog - uses 1/2 a gig of memory

Visual Studio (2005) and ASP.NET server are using more than 1/3 (765,304k) of all my memory. Has Microsoft lost its mind?