Outsider's Dev Story: .NET/C# 카테고리 글 목록https://blog.outsider.ne.kr/Stay Hungry. Stay Foolish. Don't Be Satisfied.2024-03-15T11:29:47+09:00Textcube 1.10.7 : Tempo primo시간 간격 구하기Outsiderhttps://blog.outsider.ne.kr/302009-01-24T02:15:39+09:002007-07-23T01:05:11+09:00<p>시간을 계산해야 할 일이 필요했다.<br><br>내가 필요했던 부분은 경매사이트에서 DB에 들어있는 마감시각을 가져와서 현재시각과 계산하여 남은 시간을 계산하기 위해서였다.<br><br>C#에서 DateTime이 시간이다. 보통 DB에도 "2007-07-23 오전 12:52"같은 형식으로 들어가는데 그럼 이것을 어떻게 계산을 해야하는가? 일단 그냥 빼기를 해서는 계산이 되지를 않았다.<br><br>C#에서는 연산자 오버로드를 할 수 있으므로 연산자 오버로드를 해야하는가 하면서 이것저것 뒤지다가 나온 것인 TimeSpan이다. 둘다 System네임스페이스를 사용한다.<br><br><font color="#ff7635">TiemSpan</font>은 시간 간격을 나타내는 구조체이다. DateTime을 계산하기 위해서 사용한다.<br><br>일단 소스를보자.</p><p><pre class="line-numbers"><code class="language-c#">
DateTime end = DateTime.Parse(EndtimeHF.Value.ToString());
TimeSpan t3 = end.Subtract(DateTime.Now);
TimeSpan t2 = DateTime.Now.Subtract(DateTime.Now);
if (t3.CompareTo(t2) > 0)
{
DeadlineLB.Text = t3.Days + "일 " + t3.Hours + "시간 " + t3.Minutes + "분 " + t3.Seconds + "초 남았습니다.";
}
else
{
DeadlineLB.Text = EndtimeHF.Value.ToString();
}
</code></pre><br>따로 또 수정하기 귀찮아서 그냥 내가 쓴 소스를 그대로 잘라왔다. ㅋ<br><br>여기선 히든필드에서 값을 가져왔지만 스트링이면 DateTime으로 캐스팅하면 되고 DateTime이면 그냥 쓰면 된다.<br><br>Substract가 값을 빼는 메서드이다. end에서 현재의 시간을 빼고 이걸 TimeSpan t3에 저장해서 남은 시간을 계산했다. <br><br>여기에 시간 간격이 0이하일 경우에는 그냥 종료시간만 표시하기 위해서 TimeSpan t2를 썼다. 이것저것 만져봤지만 TimeSpan의 형식을 정확히 알 수가 없어서 크기를 계산할 수가 없어서 나름대로 꼼수를 부렸다. Substract로 현재에서 현재를 빼서 t2에 저장을 했다. 연산속도를 보았을때 0이 나올 것이고 머 꼭 0이 아니더라도 너무 작은 값이므로 큰 상관이 없다.<br><br>비교메서드인 CompareTo를 사용해서 t3와 t2를 사용해서 시간간격이 0보다 큰지 아닌지를 비교했다. </p><p><strong><a href="https://blog.outsider.ne.kr/30?commentInput=true#entry30WriteComment">댓글 쓰기</a></strong></p>마방진 만들기Outsiderhttps://blog.outsider.ne.kr/102007-07-18T00:47:05+09:002007-06-18T10:35:51+09:00VS 2005에서 C#으로 만든 마방진....<br /><br />마방진(Magic Square)이란 <SPAN class=text13><FONT color=#faffa9>1에서 n2까지의 정수를 n행 n열의 정사각형 모양으로 나열하여 가로·세로·대각선의 합이 전부 같아지도록 한 것</FONT>이다.<br /><br />마방진은 쉽게 말하면 3이상의 수로 NxN의 진을 만든후에 각 칸에 숫자를 넣어서 가로, 세로, 대각선의 합을 모두 동일하게 만드는 것인데 이걸 프로그램으로 만든것이다.<br /><br />차수에 따라 여러가지 마방진을 해결할 수 있는 해법이 존재하고 있는데 나는 <A href="http://user.chollian.net/~brainstm/mbj.htm" target=_blank><FONT color=#177fcd><STRONG>신권영의 마방진 세상</STRONG></FONT></A>에 나와 있는 해법을 가지고 마방진을 만들었다.<br /><br />기본적으로 홀수차 마방진을 만드는 방법이 가장 쉽고...<br /><br />4N차수의 마방진을 만드는 것이 약간 어렵고 4N+2차수의 마방진을 만드는 것이 가장 어렵다.<br /><br />
<DIV style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; PADDING-BOTTOM: 10px; PADDING-TOP: 10px; BACKGROUND-COLOR: #e4e4e4">
<BLOCKQUOTE><FONT color=#000000>AbsMabangzin.cs -> 마방진해법 클랠스들에서 공통적으로 사용하는 추상클래스<br />CheckMabangzin.cs -> 마방진을 만든 후에 마방진이 제대로 만들었는지 확인한다.<br />DecideMabangzin.cs -> 메인클래스에서 마방진을 만들려고 숫자를 받았을때 어느 마방진해법을 사용할것인지를 선택한다.<br />Even4NMabangzin.cs -> 4N차수 마방진에 대한 해법<br />Even6NMabangzin.cs -> 4N+2차수 마방진에 대한 해법<br />MabangzinMain.cs -> 메인, 숫자받아서 DecideMabangzin 호출<br />OddMabangzin.cs -> 홀수차 마방진에 대한 해법</FONT></BLOCKQUOTE></DIV><br /><br /><div class="imageblock center" style="text-align: center; clear: both;"><a class="extensionIcon" href="https://blog.outsider.ne.kr/attachment/1023194034.zip"><img src="//blog.outsider.ne.kr/resources/image/extension/zip.gif" alt="" /> Mabangzin.zip</a></div><br /></SPAN><p><strong><a href="https://blog.outsider.ne.kr/10?commentInput=true#entry10WriteComment">댓글 쓰기</a></strong></p>