2010-10-22 4 views
8

Hé les gars, je suis un peu perdu sur la façon de faire ça. Je sais comment initialiser un tableau avec des valeurs au moment de la déclaration, mais comment le ferais-je avec un tableau de type DateTime puisqu'il faut plusieurs arguments pour créer une date ??C#: initialise un tableau DateTime

Répondre

32

Vous voulez dire comme ça?

DateTime[] dateTimes = new DateTime[] 
{ 
    new DateTime(2010, 10, 1), 
    new DateTime(2010, 10, 2), 
    // etc 
}; 
+0

Cela semble assez simple. L'utilisation du nouveau mot-clé ne va pas causer des problèmes? – Sinaesthetic

+0

No remember dateTime est un tableau d'objets DateTime donc à l'intérieur il doit être une instance de la classe DateTime. – Necronet

+0

ok, je l'ai essayé sans le nouveau mot-clé. Semble fonctionner correctement avec juste {DateTime (x, x, x)} etc. J'étais juste inquiet que le nouveau mot-clé créerait de nouveaux objets pour chaque valeur, dont je n'ai pas besoin. Merci! – Sinaesthetic

5
DateTime [] startDate = new DateTime[5]; 
     startDate[0] = new DateTime(11, 11, 10); 
     startDate[1] = new DateTime(11, 11, 10); 
     startDate[2] = new DateTime(11, 11, 10); 
     startDate[3] = new DateTime(11, 11, 10); 
     startDate[4] = new DateTime(11, 11, 10); 
+2

La dernière ligne provoquera une erreur, car il n'y a que 5 éléments dans le tableau. – Matt

0
DateTime [] "name_of_array"=new Date[int lenght_of_the_array]; //this is the array DateTime 

Et puis lorsque vous attribuez la valeur dans chaque position du tableau:

DateTime "name_of_each_element_of_the_array"= new DateTime(int value_of_year,int value_of_month, int value_of_day);//this is each element that is added in each position of the array 
0
For example, i want to add a DateTime array of 4 elements:      DateTime[] myarray=new DateTime [4]; //the array is created 
int year, month, day;    //variables of date are created    
for(int i=0; i<myarray.length;i++) 
{ 
    Console.WriteLine("Day"); 
    day=Convert.ToInt32(Console.ReadLine()); 
    Console.WriteLine("Month"); 
    month=Convert.ToInt32(Console.ReadLine()); 
    Console.WriteLine("Year"); 
    year=Convert.ToInt32(Console.ReadLine()); 

    DateTime date =new DateTime(year,month,day); //here is created the object DateTime, that contains day, month and year of a date 

myarray[i]=date; //and then we set each date in each position of the array 
} 
+0

Ceci ne s'initialise pas à _time of declaration_. – namezero

1

Si vous voulez construire un tableau pour laps de temps entre deux dates vous pourriez faire quelque chose comme ceci:

 timeEndDate = timeStartDate.AddYears(1); // or .AddMonts etc.. 
     rangeTimeSpan = timeEndDate.Subtract(timeStartDate); //declared prior as TimeSpan object 
     rangeTimeArray = new DateTime[rangeTimeSpan.Days]; //declared prior as DateTime[] 

     for (int i = 0; i < rangeTimeSpan.Days; i++) 
     { 
      timeStartDate = timeStartDate.AddDays(1); 
      rangeTimeArray[i] = timeStartDate; 
     }