Re: Как получить первый день текущей(и не только) недели?
От: ie Россия http://ziez.blogspot.com/
Дата: 18.11.05 06:49
Оценка: :))) :))
Здравствуйте, antonko, Вы писали:

A>Как получить первый день текущей(и не только) недели? думаю что в .NET должно делаться двумя строками, но не нашел.


string firstDayOfAnyWeek = GetFirstDayOfAnyWeek();
...
...
public static string GetFirstDayOfAnyWeek()
{
  return "Monday".
}
Превратим окружающую нас среду в воскресенье.
Re[3]: Как получить первый день текущей(и не только) недели?
От: sardanapal США  
Дата: 18.11.05 07:16
Оценка: +1
Здравствуйте, Аноним, Вы писали:
А> я извиняюсь, уточню. Дату первого дня текущей недели

DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek) если первый день недели воскресенье
Если первый день понедельник, то прибавить 1, но учесть особый случай для варианта когда сегодня воскресенье
Как получить первый день текущей(и не только) недели?
От: antonko  
Дата: 18.11.05 06:47
Оценка:
Как получить первый день текущей(и не только) недели? думаю что в .NET должно делаться двумя строками, но не нашел.
Re[2]: Как получить первый день текущей(и не только) недели?
От: Аноним  
Дата: 18.11.05 06:57
Оценка:
Здравствуйте, ie, Вы писали:

ie>
ie>string firstDayOfAnyWeek = GetFirstDayOfAnyWeek();
ie>...
ie>...
ie>public static string GetFirstDayOfAnyWeek()
ie>{
ie>  return "Monday".
ie>}
ie>



я извиняюсь, уточню. Дату первого дня текущей недели
Re[3]: Как получить первый день текущей(и не только) недели?
От: HotDog Швейцария www.denebspace.com
Дата: 18.11.05 07:21
Оценка:
Здравствуйте, Аноним, Вы писали:

А> я извиняюсь, уточню. Дату первого дня текущей недели


Я так думаю, что просто не получится. Так как к примеру в россии неделя начинается с понедельника, в америке с воскресенья (см календарь) и т.д. Может в FW 2.0 что то и добавил, но в FW 1.1 надо шаманить.
Re[4]: Как получить первый день текущей(и не только) недели?
От: antonko  
Дата: 18.11.05 08:01
Оценка:
Здравствуйте, sardanapal, Вы писали:

А>> я извиняюсь, уточню. Дату первого дня текущей недели


S>DateTime.Today.AddDays(-(int)DateTime.Today.DayOfWeek) если первый день недели воскресенье

S>Если первый день понедельник, то прибавить 1, но учесть особый случай для варианта когда сегодня воскресенье

Спасибо, так и сделаю! будет проще всего.
думал что DayOfWeek это не есть DateTime и невозможно отнять одно от другого
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re: Как получить первый день текущей(и не только) недели?
От: tripolox Россия  
Дата: 18.11.05 09:30
Оценка:
Здравствуйте, antonko, Вы писали:

A>Как получить первый день текущей(и не только) недели? думаю что в .NET должно делаться двумя строками, но не нашел.


Я делаю так:
// работаем
private static System.DateTime FirstDayOfWeekByDate(System.DateTime date, System.Globalization.CultureInfo ci)
        {
            DayOfWeek firstDayOfWeek = ci.DateTimeFormat.FirstDayOfWeek;
            return  date.AddDays((Int32)firstDayOfWeek-(Int32)date.DayOfWeek);
        }

// перегружаем для удобства
private static System.DateTime FirstDayOfWeekByDate(System.DateTime date)
        {
            return FirstDayOfWeekByDate(date, System.Threading.Thread.CurrentThread.CurrentCulture);
        }





Небольшой тестик — Смотрим что получается:
static void Main(string[] args)
        {
            System.Globalization.CultureInfo ci = System.Threading.Thread.CurrentThread.CurrentCulture;            
            
            System.DateTime date = System.DateTime.Now;
            date = FirstDayOfWeekByDate(System.DateTime.Now);
            Console.WriteLine("Def:\t{0} {1} {2}", date, date.DayOfWeek, (Int32)date.DayOfWeek);    
            
            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("ru-Ru");                        
            date = FirstDayOfWeekByDate(System.DateTime.Now,System.Threading.Thread.CurrentThread.CurrentCulture);
            Console.WriteLine("ru-RU:\t{0} {1} {2}", date, date.DayOfWeek, (Int32)date.DayOfWeek);            
        

            System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo("en-US");                        
            date = FirstDayOfWeekByDate(System.DateTime.Now,System.Threading.Thread.CurrentThread.CurrentCulture);
            Console.WriteLine("en-US:\t{0} {1} {2}", date, date.DayOfWeek, (Int32)date.DayOfWeek);            
            
            System.Threading.Thread.CurrentThread.CurrentCulture = ci;            
            
        }
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.