Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 01.08.2012, 11:52   #1
stalsoft
Форумчанин
 
Регистрация: 09.06.2011
Сообщений: 147
По умолчанию Даты и номер недели!

Всем привет!
Есть след. трабла....получаю номер недели, после чего нужно получить дату начала и окончания недели.
У женщин чары образуются из стрингов;
А у программистов наоборот - стринги образуются из чаров;
stalsoft вне форума Ответить с цитированием
Старый 01.08.2012, 17:53   #2
Angva
 
Регистрация: 01.08.2012
Сообщений: 3
По умолчанию

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

Код:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace week
{
    class week
    {
        enum Month { Jen = 1, Feb, March, April, May, June, Jule, Au, Sep, Oct, Now, Dec } 
        int weekNumber;
        int year;
        int month;

        int first;
        Month fm;
        Month lm;
        int last;
        DayOfWeek firstDay;
  

        public week(int wN, int year, int month)
        {
            weekNumber = wN;
            this.year = year;
            this.month = month;
        }
        public void BigDay()
        {
            DateTime dt = new DateTime(year, month, 1);
            firstDay = dt.DayOfWeek;
            if (weekNumber * 7 > DateTime.DaysInMonth(year, month))
            {
                last = (weekNumber * 7 - DateTime.DaysInMonth(year, month) - (int)firstDay);
                dt = new DateTime(year, ++month, 1);
                lm = (Month)dt.Month;
            }
            else
            {
                last = weekNumber * 7 - (int)firstDay;
                lm = (Month)dt.Month;
            }
            if (last >= 7)
            {
                first = last - 6;
                fm = (Month)dt.Month;
            }
            else
            {
                first = last + DateTime.DaysInMonth(year, month - 1) - 6;
                dt = new DateTime(year, month -1, 1);
                fm = (Month)dt.Month;
            }


            Console.WriteLine("Sunday of your week is {0}'of {1}, Saturday of your week is {2} of {3}", first, fm, last, lm);
        }
    }
    class Program
    {
        static void Main(string[] args)
        {
            week w = new week(3, 2012, 8);
            w.BigDay();
            Console.ReadKey();
        }
    }
}
Angva вне форума Ответить с цитированием
Старый 02.08.2012, 11:11   #3
Hollander
Участник клуба
 
Аватар для Hollander
 
Регистрация: 03.05.2007
Сообщений: 1,189
По умолчанию

Или так:
Код:
public static DateTime GetFirstDateOfWeek(DateTime dayInWeek, DayOfWeek firstDay)
{
    DateTime firstDayInWeek = dayInWeek.Date;
    while (firstDayInWeek.DayOfWeek != firstDay)
        firstDayInWeek = firstDayInWeek.AddDays(-1);

    return firstDayInWeek;
}
public static DateTime GetLastDateOfWeek(DateTime dayInWeek, DayOfWeek firstDay)
{
    DateTime lastDayInWeek = dayInWeek.Date;
    while (lastDayInWeek.DayOfWeek != firstDay)
        lastDayInWeek = lastDayInWeek.AddDays(1);

    return lastDayInWeek;
}
Hollander вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как вычислить номер месяца, имея номер недели? Ras2im Microsoft Office Excel 17 07.10.2012 03:31
Как определить даты по номеру недели silvestr PHP 4 20.10.2011 10:46
Извлечение из даты дня недели Kesha_pptp PHP 5 27.02.2010 22:21
порядковый номер недели skalt12 Общие вопросы Delphi 7 01.12.2009 16:52
Зависимость даты дней от дня недели valerij Microsoft Office Excel 16 18.06.2009 01:17