2016-05-26 2 views
1

Я пишу программу, в которой пользователь должен ввести дату. Мои вопросы:Как установить дату на что угодно, кроме будущего?

  1. Как я могу установить дату сегодня и в прошлое, но НЕ будущее?
  2. Как установить дату в формат, отличном от США, т. Е. Dd/mm/yyyy, поэтому компилятор читает среднее значение в качестве месяца?

Это то, что мой код выглядит следующим образом:

static DateTime date; 

и способ, как это ...

public static void EnterDates() 
{ 
    for (int i = 0; i < days; i++) 
    { 
     Console.Write("Enter the date (dd/mm/yyyy): "); 
     date = DateTime.Parse(Console.ReadLine()); 
     centers[k].dates[i] = date; 
     Console.WriteLine("Day " + centers[k].dates[i]); 
     Console.Write("Number of movie screenings: "); 
     movieScreen = Convert.ToInt32(Console.ReadLine()); 
     centers[k].movieScreen[i] = movieScreen; 
     Console.Write("Total number of customers: "); 
     customers = Convert.ToInt32(Console.ReadLine()); 
     centers[k].customers[i] = customers; 
     centers[k].revenue[i] = movieScreen * customers * (centers[k].Price * 1.13); 
     centers[k].totalRevenue += centers[k].revenue[i]; 

ответ

1

Как я могу установить дату на сегодня и прошлое, но НЕ будущее?

Основываясь на том, что вы в настоящее время, вы можете добавить проверку после того, как пользователь вводит date и сравнить его с DateTime.Now

if(date < DateTime.Now) 
    //valid 
else 
    //invalid 

Как я могу установить дату в неамериканский формат, т.е. dd/mm/yyyy, поэтому компилятор читает среднее значение как месяц?

Вы можете использовать DateTime.ParseExact

date = DateTime.ParseExact(Console.ReadLine(), "dd/MM/yyyy", CultureInfo.InvariantCulture) 
Смежные вопросы