Hej, jestem trochę zagubiony, jak to zrobić. Wiem, jak zainicjować tablicę z wartościami w momencie deklaracji, ale jak to zrobić z tablicą typu DateTime, ponieważ do utworzenia daty potrzeba wielu argumentów?C#: zainicjować macierz DateTime
8
A
Odpowiedz
32
Masz na myśli?
DateTime[] dateTimes = new DateTime[]
{
new DateTime(2010, 10, 1),
new DateTime(2010, 10, 2),
// etc
};
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
Ostatnia linia spowoduje błąd, ponieważ w tablicy znajduje się tylko 5 elementów. – Matt
0
DateTime [] "name_of_array"=new Date[int lenght_of_the_array]; //this is the array DateTime
A potem, gdy przypisujemy wartość w każdej pozycji tablicy:
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
Nie inicjalizuje się na _time of declaration_. – namezero
1
Jeśli chcesz zbudować tablicę dla przedziału czasowego pomiędzy dwiema datami możesz zrobić coś takiego:
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;
}
To wygląda na dość proste. Używanie nowego słowa kluczowego nie spowoduje problemów? – Sinaesthetic
Nie pamiętam dateTimes to tablica obiektów DateTime, więc wewnątrz musi być instancja klasy DateTime. – Necronet
ok, wypróbowałem to bez nowego słowa kluczowego. Wydaje się, że działa dobrze po prostu {DateTime (x, x, x)} itd. Obawiałem się, że nowe słowo kluczowe będzie tworzyć nowe obiekty dla każdej wartości, których nie potrzebowałem. Dzięki! – Sinaesthetic