convert from GPS week number,time of week to datetime

If you know the DateTime that represents the week, just call AddSeconds to find the DateTime you need.

According to the calculator you linked to above, week 1643, 377505 should equate to 2011/07/07 07:51:44, not 10:51:44 (maybe it is a time zone offset?) Anyway, the following snippet will give you what you the same result as the calculator in the link when GMT is selected - for different timezones, you'll have to apply your own offsets.

DateTime GetFromGps(int weeknumber, double seconds)
{
    DateTime datum = new DateTime(1980,1,6,0,0,0);
    DateTime week = datum.AddDays(weeknumber * 7);
    DateTime time = week.AddSeconds(seconds);
    return time;
}