Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Календарь, Есть готовые решения? 
:(
    Опции темы
DenWPF
Дата 17.11.2009, 22:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



Нужно вывести календарь, как это сделать?
есть готовые классы? или решения??
или надо самому?

если самому то помогите с форматированием.

PM MAIL   Вверх
KuMa1104
Дата 17.11.2009, 23:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

Репутация: нет
Всего: 3



DenWPF а стандартный  MonthCalendar не подходит?


--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
DenWPF
Дата 17.11.2009, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



ээээ не понимаю как он работает.
это Формс?
PM MAIL   Вверх
KuMa1104
Дата 17.11.2009, 23:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

Репутация: нет
Всего: 3



DenWPF на форму перетащи из tool box элемент  MonthCalendar  и вуаля!!!


--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
DenWPF
Дата 17.11.2009, 23:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



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

вывожу с верху 
string.Format("{0:m} {0:yyyy}", d_now)
а потом не додумался ещё.
надо:
1. вывести строку с названиями ПН ВТ СР ЧТ ПТ Сб, но это сделать через формат так как я хочу что бы если что то англ тоже выводилось.(по настройкам компа)
Так это решено
Код

for (int i = 1; i <= 7; i++)
            {
                DateTime date = new DateTime(1,1,i);
                e.Graphics.DrawString(String.Format("{0:ddd}", date), new Font("Tahoma", 15), brush, new PointF(SystemInformation.PrimaryMonitorSize.Width - 250 + i * 30, 30));
            }


2. вывести все дни в нужном порядке. - почти решил
Код

            for(int i=1;i<= DateTime.DaysInMonth(d_now.Year,d_now.Month);i++)
            {
                DateTime date = new DateTime(d_now.Year, d_now.Month, i);
                for (int y = 1; y <= 7;y++ )
                {
                    string str = String.Format("{0:ddd}", date);
                    if(str == _calc[y-1])
                    {
                        e.Graphics.DrawString(date.Day.ToString(), new Font("Tahoma", 15), brush, new PointF(SystemInformation.PrimaryMonitorSize.Width - 250 + y * 30,30+ 30*[B]i));
                    }
                }
                       
            }

теперь надо просто узнать какая неделя по введеному дню и задать на место И в выделеном коде

Это сообщение отредактировал(а) DenWPF - 18.11.2009, 00:31
PM MAIL   Вверх
KuMa1104
Дата 18.11.2009, 11:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

Репутация: нет
Всего: 3



Цитата(DenWPF @  17.11.2009,  23:26 Найти цитируемый пост)
Все бы не чего но в место него у меня тупо белый лист и работает контекстное меню.и не хочу так
 

Эээ так он у тебя не работает, и он к томуже тебе не нравиться. Я правильно понял.

Хм.. а может стоит попробовать поискать в нете уже готовый контрол, может он подойдёт лучше.

Я так понял что ты в качестве альтернативы, решил собственное подобие на форме нарисовать.

Цитата(DenWPF @  17.11.2009,  23:26 Найти цитируемый пост)
теперь надо просто узнать какая неделя по введеному дню и задать на место И в выделеном коде


Т.ё. надо выделить нужный день другим цветом? Если ты просто ресуеш на форме то ИМХО тогда уж лучше задать иасив обектов DayMas []  дни 
Код

class DayMas
{
// .....
}


и каждому задаватьь свойство выделен или нет. Тогда скажем при нажатие на область формы комп расчитывает какой эл соответствует этому месту. устанавливает ему это свойство . А потом масив обектов перерисовываеться.

Код

в перересовке

if(дни[i].Select )
{
рисуем одним цветом
}
else
{
другим
}




--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
DenWPF
Дата 18.11.2009, 12:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



нет, вы не поняли, мне надо просто рисунок я рисую graphics.DrawSting.
формы не использую

Как узнать по году, неделе и дню, какая это неделя?

Это сообщение отредактировал(а) DenWPF - 18.11.2009, 12:02
PM MAIL   Вверх
KuMa1104
Дата 18.11.2009, 19:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

Репутация: нет
Всего: 3



Цитата(DenWPF @  18.11.2009,  12:02 Найти цитируемый пост)
нет, вы не поняли, мне надо просто рисунок я рисую graphics.DrawSting.формы не использую

 А, просто интересно на чём вы рисуете?

Цитата(DenWPF @  18.11.2009,  12:02 Найти цитируемый пост)
Как узнать по году, неделе и дню, какая это неделя?

Т.ё. по неделе узнать какая это неделя? smile 

Может вы имели в виду....
12.07.2009 - что за номер недели вам нужно узнать?
 Какой она по счёту идёт 1ой 2ой 3ей или 4ой в месяце?
Или вообще её номер в году к примеру 23?


--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
DenWPF
Дата 18.11.2009, 20:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



номер недели в месяце. 1 2 3 4
PM MAIL   Вверх
KuMa1104
Дата 18.11.2009, 21:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

Репутация: нет
Всего: 3



ИМХО получи день с которого начинался месяц.
Например воскресенье это 1ое число. 1-ая неделя значит 18 число это 4 ая неделя  (0 + (2 + 7)) + 4

Максимум может быть до 6 недель.


--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
DenWPF
Дата 18.11.2009, 22:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



аррр, сори расчет не понял.
PM MAIL   Вверх
KuMa1104
Дата 18.11.2009, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

Репутация: нет
Всего: 3



Зы ну это очень образно.

Предположим что 1ое число месяца это субота, значит 1ая неделя состоит из 2х дней суб. и воскресенье. предположим что сегодня 10е число, посчитаем дни


1 ая неделя         2 день (суб + воскресенье)
2 ая неделя         7 день
3 ая неделя         1 день

значит 10 число это понедельник. 

Аналогично с 
Цитата(KuMa1104 @  18.11.2009,  21:28 Найти цитируемый пост)
Например воскресенье это 1ое число. 1-ая неделя значит 18 число это 4 ая неделя  (0 + (2 + 7)) + 4


А чёрт я там имел в виду (1 + (2 * 7)) + 3 (среда) это я виноват sory...



--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
DenWPF
Дата 19.11.2009, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1659
Регистрация: 26.9.2009

Репутация: нет
Всего: 1



не понял, ты предлагаешь для каждого высчитывать???
нету единой формулы?
PM MAIL   Вверх
KuMa1104
Дата 19.11.2009, 12:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 541
Регистрация: 16.4.2009
Где: Ростов-на-Дону

Репутация: нет
Всего: 3




Цитата(DenWPF @  19.11.2009,  00:37 Найти цитируемый пост)
не понял, ты предлагаешь для каждого высчитывать???

Я вообще предлогал использовать календарь, какой нибудь.

Цитата(DenWPF @  19.11.2009,  00:37 Найти цитируемый пост)
нету единой формулы?

Почему нет? Есть.
Я предложил идею а не алгоритм, его уж сам составиш, конкретно под свою задачу.
а идея в том, что сначало досчитываеш до конца 1ой недели.
Т.е.  если 1ое число месяца воскресенье, то думаю понятно что до конца недели 1 день.

значит n_week = 1

Потом X  это твоя дата например 30 число в месяце. значит делаем так.

int n_week + = (Х-1)/7 = (30 - 1)/7 = 4 
значит это уже как минимум 5 ая неделя а потом проверяем остаток

if((Х-1)%7 != 0)
week++;

Таким образом 6 неделя. открой календарь убедись, это для нынешнего месяца





--------------------
Галактика – суровая штука. Чтобы в ней выжить, надо знать, где твое полотенце.

Время - штука относительная... а время обеда - ещё более относительная
PM MAIL   Вверх
tol05
Дата 19.11.2009, 13:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1632
Регистрация: 21.12.2006
Где: Харьков

Репутация: 63
Всего: 170





--------------------
На хорошей работе и сны хорошие снятся.
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1488 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.