2014-07-23 1 views
-1

예측의 첫 번째 요일을 현재 요일로 설정하고 나머지는 다음과 같이 따르는 것입니다. 0은 분명히 일요일이고 6은 토요일입니다. 나는 이것이 제대로 작동하는지 또는 더 좋은 방법이 있는지 알아 내려고 노력 중이다. 아래의 C# 코드는 내가 가장 쉬운 방법을 찾은 방법을 보여줍니다.하지만 분명히 수학은 6을 넘기 때문에 끝날 때의 일을 보여주지는 않습니다. 매우 명확하게하기 위해서 요일의 요일이 현재 날짜부터 순서대로되어야하므로 xsl 코드를 적용하여 예제를 보여줄 수 있습니다. xsl의 각 위치는 하루로 간주됩니다. 수학 부분을 도와 주시면이게 효과가 있다고 생각합니다.확장 예측을위한 요일

`    DayOfWeek day1 = DateTime.Now.DayOfWeek; 
        DayOfWeek day2 = day1 + 1; 
        DayOfWeek day3 = day2 + 1; 
        DayOfWeek day4 = day3 + 1; 
        DayOfWeek day5 = day4 + 1; 
        DayOfWeek day6 = day5 + 1; 
        DayOfWeek day7 = day6 + 1; 
        switch (day1) 
        { 
         default: 
         case DayOfWeek.Sunday:      
          break; 
         case DayOfWeek.Monday: 
          break; 
         case DayOfWeek.Tuesday: 
          break; 
         case DayOfWeek.Wednesday: 
          break; 
         case DayOfWeek.Thursday: 
          break; 
         case DayOfWeek.Friday: 
          break; 
         case DayOfWeek.Saturday: 
          break; 

        } 
        xFore.Root.Add(new XElement("day", day1), 
         new XElement("day2", day2), 
         new XElement("day3", day3), 
         new XElement("day4", day4), 
         new XElement("day5", day5), 
         new XElement("day6", day6), 
         new XElement("day7", day7));` 



`      <xsl:if test ="position()=1">Today</xsl:if> 
         <xsl:if test ="position()=2"> 
         <xsl:value-of select="//day2"/> 
         </xsl:if> 
         <xsl:if test ="position()=3"> 
         <xsl:value-of select="//day3"/> 
         </xsl:if> 
         <xsl:if test ="position()=4"> 
         <xsl:value-of select="//day4"/> 
         </xsl:if> 
         <xsl:if test ="position()=5"> 
         <xsl:value-of select="//day5"/> 
         </xsl:if> 
         <xsl:if test ="position()=6"> 
         <xsl:value-of select="//day6"/> 
         </xsl:if> 
         <xsl:if test ="position()=7"> 
         <xsl:value-of select="//day7"/> 
         </xsl:if>` 

답변

0

당신은 6 이상가는 것을 방지하기 위해 나머지 연산자 (http://msdn.microsoft.com/en-us/library/0w4e0fzs.aspx)를 사용해야합니다

DayOfWeek day1 = DateTime.Now.DayOfWeek; 
DayOfWeek day2 = (DayOfWeek)((byte)(day1 + 1) % 7); 
DayOfWeek day3 = (DayOfWeek)((byte)(day2 + 1) % 7); 
DayOfWeek day4 = (DayOfWeek)((byte)(day3 + 1) % 7); 
DayOfWeek day5 = (DayOfWeek)((byte)(day4 + 1) % 7); 
DayOfWeek day6 = (DayOfWeek)((byte)(day5 + 1) % 7); 
DayOfWeek day7 = (DayOfWeek)((byte)(day6 + 1) % 7); 

// Rest of code omitted 
+0

감사합니다! 이것은 완벽하게 작동했습니다. –

0

것은 여기에 귀하의 문제를 해결하기 위해 내 시도입니다. 만약 내가 옳다면 아무 번호도 6 이상이되지 않도록 mod 연산을 구현하면됩니까?

예 :

DayOfWeek[] Days = new DayOfWeek[7]; 

DayOfWeek[0] = DateTime.Now.DayOfWeek; 
For(Int i=1;i < 7;i++) 
    DayOfWeek[i] = (DayOfWeek)(((byte)DayOfWeek[i-1]+1) % 7); 

XElement[] XmlDays = new XElement[7]; 
For(Int i=0;i < 7;i++) 
    XmlDays[i] = new XElement("day" + i.ToString(), DayOfWeek[i]); 

xFore.Root.Add(XmlDays);