Il est plus normal de convertir votre date en a Julian day number:
// This is a standard formula for conversion.
// See the Wikipedia page on Julian days for more information.
public static long ToJulian(int year, int month, int day)
{
if (month < 3)
{
month = month + 12;
year = year - 1;
}
return day + (153 * month - 457)/5 + 365 * year + (year/4) - (year/100) + (year/400) + 1721119;
}
Pour appeler que vous devez d'abord analyser votre chaîne de date dans le mois, le jour et l'année:
public static long ToJulian(string mdy)
{
var split = mdy.Split('/');
return ToJulian(int.Parse(split[2]), int.Parse(split[0]), int.Parse(split[1]));
}
Ensuite, vous pouvez convertir les deux dates en format julien et soustrayez-les pour trouver la différence en jours.
Voici un exemple qui montre que le résultat est le même par rapport à l'utilisation Julian DateTime et TimeSpan:
static void Main()
{
string date1 = "5/31/1961";
string date2 = "1/5/2017";
long diff1 = ToJulian(date2) - ToJulian(date1);
Console.WriteLine("diff1 = " + diff1);
long diff2 = (long)(
DateTime.Parse(date2, CultureInfo.InvariantCulture) -
DateTime.Parse(date1, CultureInfo.InvariantCulture))
.TotalDays;
Console.WriteLine("diff2 = " + diff2);
}
'CHAINE' seulement? Vous ne pouvez même pas utiliser 'int'? Aussi, si vous nous montrez une tentative, vous avez plus de chances d'obtenir de l'aide. – juharr
Je suis désolé j'étais malpropre. J'ai une date sous forme de chaîne au format "1/5/2017" par exemple. – vamone
Est-ce que l'intervieweur veut savoir si vous êtes capable de faire des tâches absurdes sans vous révolter? – Ralf