Как мне написать цикл, который печатает этот вид текста относительно различий в датах? - PullRequest
0 голосов
/ 20 октября 2011

Мне нужно сгенерировать код, где я буду получать пользовательский ввод (целое число) и использовать его для создания дней недели

пример: пользовательские вводы - 5

Мне нужно вывести что-то вроде ниже

  1. Сегодня (сегодняшняя дата)
  2. Завтра (завтра)
  3. Послезавтра
  4. через два дня завтра
  5. через три дня завтра ...

, и если пользователь вводит 6, он должен вывести 6 дней, как указано выше.

, пожалуйста, помогите какЯ новичок в C #

Большое спасибо

Ответы [ 6 ]

6 голосов
/ 20 октября 2011

Я не буду писать код для вас. Хотел бы дать несколько советов.

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

Вы можете использовать While Loop, как вы сказали в Title или даже For, может работать

Вы можете получать ввод от пользователя через класс консоли, если вы создаете консольное приложение, в противном случае вы можете принять ввод в каком-либо текстовом поле.

Для цикла или цикла будет выполняться для текущего дня плюс число, которое пользователь ввел минус 1

2 голосов
/ 20 октября 2011
 static void Main(string[] args)
        {
            days();
        }
        public static void days()
        {
            Console.Write("Please enter number : ");
            int a = Convert.ToInt32(Console.ReadLine());

            for (int i = 0; i < a; i++)
            {
                string strdays;
                switch (i)
                {
                    case 0:
                        strdays = ". Todays date is : ";
                        break;
                    case 1:
                        strdays = ". Tommorrows date is : ";
                        break;
                    case 2:
                        strdays = ". Day after tommorrows date is : ";
                        break;                   
                    default:
                        strdays = ". " + (i-1) + "Days after tommorrows date is : ";
                        break;
                }                    
                Console.WriteLine((i+1)+ strdays + System.DateTime.Now.AddDays(i));                 
            }            
            Console.ReadLine();
        }

надеюсь, это поможет вам ..

1 голос
/ 20 октября 2011

Куски кода, которые вам понадобятся:

  • Console.Write
  • Console.ReadLine
  • int.Parse (для преобразования ввода в целое число)
  • DateTime.Today
  • DateTime.AddDays(zeroOrMoreDays)
  • DateTime.DayOfWeek (если вы хотите Wednesday вместо 10/19/2011 12:00:00 AM)

Здесьэто некоторый псевдокод:

Ask the user for the number of days (as a string)
Parse numberOfDays into an int
for i = 0 to numberOfDays:
    write line: today.AddDays(i).DayOfWeek

Вам также нужно будет сделать несколько трюков, чтобы заставить работать материал на естественном языке, например three days after tomorrow is.

Я бы использовал несколькодополнительные if i == 0 else if i == 1 операторы типа, чтобы решить эту проблему, и отступить от общего <number> days after tomorrow после определенного момента.

См. этот (закрытый) вопрос для ссылок о том, как получить это число: преобразование чисел в слова C #

Редактировать в соответствии с вашими комментариями по вопросу

@ sblom ... Нет для веб-службы яЯ планирую

Не используйте тогда Console вещи.

Вместо этого сделайте этот метод, и не выполняйте строковые / int.Parse вещи.Просто возьмите int напрямую.

Создайте результат с помощью StringBuilder и верните string вместо прямой распечатки результата.

0 голосов
/ 20 октября 2011
Int32 numberOfDays = 5;
DateTime dt = DateTime.Now;
for (int i = 0; i < numberOfDays ; i++)
{
    Console.WriteLine(dt.AddDays(i).DayOfWeek);
}

Надеюсь, это поможет!=) * * Тысяча два

0 голосов
/ 20 октября 2011
// num is number if days we'll loop through
int num = 5;

// gets the current date time - save it off.  even though incrementing days, in other
// date incrementing functions (min, sec etc...) it's important to save off
DateTime now = DateTime.Now;

// init a countervar
int count = 0;

// loop until num times
while (count < num)
{
    // add the current count number of days and print
    // ++ after the variable increments it after calculating the new date
    DateTime curr = now.AddDays(count++);

    // output the value - it ends up calling .ToString() on date.
    Console.WriteLine(curr);
}
0 голосов
/ 20 октября 2011
  int diff=0;
  while (diff < 5)
  {
      Console.WriteLine(DateTime.Now.AddDays(diff));
      diff++;
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...