Loading...
InaPanova avatar InaPanova 28 Точки

Допълнителни задачи.

Да се напише програма, която реализира следната функционалност: - от клавиатурата се въвеждат две дати; - от клавиатурата се попълва стойност в променлива, която се конвертира като „избран от потребителя ден от седмицата“; Програмата да изчислява и извежда на екран: - колко дни има между две дати, без значение коя от тях е по-голямата; - колко пъти в периода между две дати (вкл. и двете) се повтаря избраният ден от седмицата. Програмата да прихваща възможни грешки при въвеждане, конвертиране на данните и изчисляване.

Споделям задачата ако на някого му е интересно да я реши и имам конкретен въпрос по нея как да извеждаме броя на дните от седмицата м/у двете дати, т.е. как да преброим колко вторника има м/у 04.04.2016 и 01.01.2015 примерно. 

Тагове:
1
Programming Basics
TeodorDimitrov89 avatar TeodorDimitrov89 264 Точки

Не съм на 100% сигурен ,че това е задачата но все пак я разгледай http://devevolution.com/calculate-business-days/

0
InaPanova avatar InaPanova 28 Точки

Ами не съвсем, но това е подобно и все пак аз успях да я реша. Много ти благодаря, може би трябва да я преработя, тъй като кода не е красив.

2
Lusien.GG avatar Lusien.GG 66 Точки
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace DaysBetweenTwoDates
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Insert date number one: ");
            DateTime date1 = DateTime.Parse(Console.ReadLine());
            Console.Write("Insert date number two: ");
            DateTime date2 = DateTime.Parse(Console.ReadLine());
            Console.Write("Insert day of the week: ");
            string day = Console.ReadLine().ToLower();
            int dayOfWeek = 1;
            if (day == "tuesday")   dayOfWeek = 2;
            if (day == "wednesday") dayOfWeek = 3;
            if (day == "thursday")  dayOfWeek = 4;
            if (day == "friday")    dayOfWeek = 5;
            if (day == "saturday")  dayOfWeek = 6;
            if (day == "sunday") dayOfWeek = 7;
            TimeSpan ts = date1 - date2;
            int daysBetweenDate1AndDate2 = ts.Days;
            Console.WriteLine("Difference in days: {0}", Math.Abs(daysBetweenDate1AndDate2));
            int weeks = (int)Math.Floor(Math.Abs(ts.TotalDays) / 7);  // седмиците
            int remaining = (int)Math.Abs(ts.TotalDays) % 7;
            int daysCount = weeks;
            int sinceLastDay = (int)date2.DayOfWeek - dayOfWeek;
            if (sinceLastDay < 0) sinceLastDay += 7;
            if (remaining>=sinceLastDay)
            {
                daysCount++;
            }
            Console.WriteLine("You got {0} {1}s in this date range.",daysCount,day);
        }
    }
}

Грабна ме с тая задачка, това е моят вариант(онлайн студент съм в Basics - март, така че може да не е много добро решение), надявам се някой по-опитен да даде някаква компетентна оценка.

1
slavpetroff avatar slavpetroff Trainer 155 Точки

По-добре използвай http://pastebin.com/

Не е особено удачно да пускате кода в коментар, защото идеята е човек да прочете изказването в него. За код си има сайтове. Пък и не е прегледно.

1
Ivanov.Ivan avatar Ivanov.Ivan Trainer 558 Точки

Здравей,  

За тази задача ще трябва да разгледаш DateTime малко по подробно. Като насоки мога да ти дам да си вземеш разликата между двети дати като абсолютна стойност. Разликата между две дати връща TimeSpan което много удобно има метод TotalDays. След което завърташ един цикъл от 0 до TotalDays и към началната дата ( по ранната от двете) добавяш по един ден. Другия полезен метод е DayOfWeek с който ще проверяваш дали текущия ден удовлетворява условието и т.н. ... Надявам се това да ти помогне ... успех с реализирането на алгоритъма 

2
InaPanova avatar InaPanova 28 Точки

Благодаря ти за отговора, точно така я направих с TimeSpan извличам интервала м/у двете дати и след това с DayOfWeek взимам дните от седмицата и с един for обхождаме дните и създавам нова променлива от тип int, която да се увеличава на всеки понеделник, ако потребителя иска понеделник или пък сряда и т.н. 

Сега имам друго питане - Как да направя масив от структури във формат – зодия, от месец, от ден, до
месец, до ден, за да запиша по този начин зодиите в масив, който после ще използвам за прочитане на дата от потребителя и да ми изписва зодията за зададената дата. 

Приемам идеи :)

1
Ivanov.Ivan avatar Ivanov.Ivan Trainer 558 Точки

Еми на първо четене нещо от сорта на речник с ключ зодия и List от дати .... примерно?!? Пиша го без да съм го мислил много много

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.