Sto cercando di ottenere mono (Debian 2.10.8.1-5) per funzionare correttamente sul mio raspberry pi con la distro raspbian ("Debian GNU/Linux wheezy/sid"). Ho installato mono con apt-get install mono-complete.DateTime.ToString in Mono ritorno data non valida ("00/734718/0001 01:41:38")
Tuttavia, sto riscontrando un problema interessante che non riesco a capire. Il metodo DateTime.ToString() restituisce una stringa non valida.
Qui di seguito potete trovare il mio programma di esempio con l'uscita della console:
using System;
namespace MonoTest
{
class Program
{
static void Main(string[] args)
{
DateTime now = DateTime.Now;
Console.WriteLine("Year: " + now.Year);
Console.WriteLine("Month: " + now.Month);
Console.WriteLine("Day: " + now.Day);
Console.WriteLine("DayOfWeek: " + now.DayOfWeek);
Console.WriteLine("DateTime.Now: " + DateTime.Now);
Console.WriteLine(DateTime.Now.ToString("yyyy-MM-dd"));
}
}
}
uscita:
[email protected] ~/bin $ mono MonoTest.exe
Year: 2012
Month: 8
Day: 3
DayOfWeek: Friday
DateTime.Now: 00/734718/0001 01:41:38
0001-00-734718
Abbastanza interessante, 734.718 sembra essere il numero di giorni trascorsi fino ad oggi dal 01/01/0001. L'ho provato con una nuova installazione su una seconda scheda ma con lo stesso problema.
Qualcuno ha un'idea di quale sia il problema e come convalidare DateTime.ToString() per restituire il valore corretto?
Aggiornamento (8/4/2012): Dopo aver scavato a lungo il codice sorgente mono, sono riuscito a risalire a System.Math.Floor. A quanto pare, restituisce sempre 0. Ho cambiato il mio programma di test ad un semplice:
static void Main(string[] args)
{
Console.WriteLine("Floor(1.5): " + System.Math.Floor(1.5));
}
Su Windows il risultato è "Piano (1.5): 1" considerando che il mio setup mono sul pi greco di lamponi è "Piano (1.5): 0 ". Ho visto che System.Math.Floor viene implementato come
[MethodImplAttribute (MethodImplOptions.InternalCall)]
public extern static double Floor (double d);
Domani, io approfondire questo problema. Qualcuno sa perché questo problema potrebbe esistere?
Ho calpestato anche questo problema. Hai trovato qualche soluzione? – Reniuz
Forse correlato: 'DateTime.Now.ToString (" MM ")' lancia 'System.ArgumentOutOfRangeException' sul mio raspberry-pi utilizzando mono 2.10.8.1 – weberph