2012-06-05 6 views
1

사용자는 요일을 입력하기 만하면됩니다. 예를 들어 사용자가 friday를 입력하십시오. 주어진 날짜와 형식의 정확한 날짜를 찾으려면 dd.MM.yyyy과 같은 형식이어야합니다. 하지만 어떻게하는지 모르겠습니다.
예 :주어진 날로부터 날짜 시간을 얻으십시오.

label1 - Friday (entered by user) 
label2 - 08.06.2012 (found by system) 

label1은 문자열 (단지 금)입니다. 그것은 문자열 변수로 webservice에서 온다. 나는 날짜를 찾아서 오늘과 비교할 필요가있다. 오늘과 같지 않거나 작지 않다면 금방 금요일의 날짜를 주어야한다. 그렇지 않으면 나는 그 다음 주 금요일의 날짜를 준다.

+0

금요일 ?????? –

+1

사용자에게 [DateTimePicker] (http://msdn.microsoft.com/en-us/library/system.windows.forms.datetimepicker.aspx)를 지정하면 사용자가 금요일을 선택할 수 있으며 이미 사용자에게 제공됩니다 주어진 날짜의 정확한 날짜. 이것이 더 쉬울 것이라고 생각했습니다. –

+0

드롭 다운 콤보에서 요일이 선택됩니까? –

답변

2

는 "오늘은 정확한 날짜를주는 것보다 같거나 작은 아닌 경우, 다른 다음 주에 날짜를 제공합니다."

는 가정하면 당신이주의 주어진 하루 앞으로 항상 다음 날짜를 반환한다는 것을 의미 유일한 예외는 오늘이 주어진 요일 인 경우입니다.

public static DateTime getNextWeekDaysDate(String englWeekDate) 
{ 
    var desired = (DayOfWeek)Enum.Parse(typeof(DayOfWeek), englWeekDate); 
    var current = DateTime.Today.DayOfWeek; 
    int c = (int)current; 
    int d = (int)desired; 
    int n = (7 - c + d); 

    return DateTime.Today.AddDays((n >= 7) ? n % 7 : n); 
} 

하자 시험 : 달력 주

DateTime Monday = getNextWeekDaysDate("Monday"); // 2012-06-11 
DateTime Tuesday = getNextWeekDaysDate("Tuesday"); // 2012-06-05 <-- !!! today 
DateTime Wednesday= getNextWeekDaysDate("Wednesday"); // 2012-06-06 
DateTime Thursday = getNextWeekDaysDate("Thursday"); // 2012-06-07 
DateTime Friday = getNextWeekDaysDate("Friday"); // 2012-06-08 
+0

고맙습니다.이 작품은 완벽합니다. – Kadir

0
  1. 열거 형 (즉, 월요일 - 화요일, 화요일 - 1 등)을 만듭니다.
  2. DateTime.Now DayOfWeek을 가져 와서 enum 값으로 변환하십시오.
  3. Now.DayOfWeek과 사용자의 요일 사이의 차이를 계산합니다.
  4. Use DateTime.AddDays (difference) .DayofTheWeek;
0


현재 일 DateTime.now와 현재 시간을 얻을
그런 다음
이 그런 다음 결과가 DateTime.now.AddDays 당신의 사용자가 입력 한 요일을 얻을 DateTime.Now.DayOfWeek입니다 (NowDayOfWeek - UserDayOfWeek) .

관련 문제