Если дней больше 30 (31) и и февраль больше 28 (29), необходимо генерировать исключения - C#

Узнай цену своей работы

Формулировка задачи:

Программа вычисляет порядковый день в году с учетом високосного года. Если дней больше 30 (31) и и февраль больше 28(29), необходимо генерировать исключения. Но в программе неправильно генерируются исключения, например, можно ввести 30 апреля и сгенерируется исключение, а можно и ввести 29 февраля не високосного года и исключения не будет. Помогите, пожалуйста, разобраться!)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace _1Б_задание_4
{
    class Data
    {
        public double Year { get; set; }
        public double Month { get; set; }
        public double Day { get; set; }
        public void setYear(double y)
        {
 
            Year = y;
 
            if (y < 1600)
            {
                throw new System.ArgumentException("Parameter cannot be null", "original");
            }
 
        }
 
        public void setMonth(double m)
        {
            Month = m;
 
            if (m > 12)
            {
                throw new System.ArgumentException("Parameter cannot be null", "original");
            }
 
        }
        public void setDay(double d)
        {
            Day = d;
            if ((d > 30) && (Month == 4)) 
            
                if ((d > 30) && (Month == 6))
               
                    if ((d > 30) && (Month == 9))
                  
                        if ((d > 30) && (Month == 11))
                        
                            if ((d > 31) && (Month == 1))
                           
                                if ((d > 31) && (Month == 3))
                                
                                    if ((d > 31) && (Month == 5))
                                   
                                        if ((d > 31) && (Month == 7))
                                        
                                            if ((d > 31) && (Month == 8))
                                              if ((d > 31) && (Month == 10))
                                               
                                                    if ((d > 31) && (Month == 12))
                                                    {
                                                        throw new System.ArgumentException("Parameter cannot be null", "original");
                                                    }
                                                    
            if ((((Year % 4) == 0) && (Month == 2)) || (Day > 29))
           
            if ((((Year % 4) == 1) && (Month == 2)) || (Day > 28))
            
            if ((((Year % 4) == 2) && (Month == 2)) || (Day > 28))
            
            if ((((Year % 4) == 3) && (Month == 2)) || (Day > 28))
            {
                throw new System.ArgumentException("Parameter cannot be null", "original");
            }

        }

        static void Main()
        {
            int[] myArr = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
            int i;
            double t = 0;
            double t1;
            Data data1 = new Data();
            Console.WriteLine("Введите год");
 
            double y = Convert.ToDouble(Console.ReadLine());
            data1.setYear(y);
            Data data2 = new Data();
            Console.WriteLine("Введите месяц");
 
            double m = Convert.ToDouble(Console.ReadLine());
            data2.setMonth(m);
 
            Data data3 = new Data();
            Console.WriteLine("Введите день");
 
            double d = Convert.ToDouble(Console.ReadLine());
            data3.setDay(d);
            if ((y % 4) == 0)
            {
                myArr[2] = 29;
                for (i = 0; i < m; i++)
                {
                    t = t + myArr[i];
                }
                t1 = t + d;
 
                Console.WriteLine(t1);
            }
            else
            {
                for (i = 0; i < m; i++)
                {
                    t = t + myArr[i];
                }
                t1 = t + d;
 
                Console.WriteLine(t1);
            }
 
        }
    }
}

Решение задачи: «Если дней больше 30 (31) и и февраль больше 28 (29), необходимо генерировать исключения»

textual
Листинг программы
            if ((d > 30) && (Month == 4)) 
            
                if ((d > 30) && (Month == 6))
               
                    if ((d > 30) && (Month == 9))
                  
                        if ((d > 30) && (Month == 11))
                        
                            if ((d > 31) && (Month == 1))
                           
                                if ((d > 31) && (Month == 3))
                                
                                    if ((d > 31) && (Month == 5))
                                   
                                        if ((d > 31) && (Month == 7))
                                        
                                            if ((d > 31) && (Month == 8))
                                              if ((d > 31) && (Month == 10))
                                               
                                                    if ((d > 31) && (Month == 12))
                                                    {
                                                        throw new System.ArgumentException("Parameter cannot be null", "original");
                                                    }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 4.2 из 5
Похожие ответы