..거의 다 작성했는데.. 뭘 잘못눌렀다..
매우 매우 다시 작성하고 싶지 않지만 . . . . . . 다시 . .
datatimepicker는 value에 datetime을 준다.
datetime은 하단 링크를 참조하자
https://hengs.tistory.com/43?category=1063480
1) 아무 설정없이 form에 datetimepicker를 추가했을 때
오늘 날짜가 "2021년 12월 21일 화요일" 의 형태로 들어간다.
그리고 달력을 눌러 날짜를 변경할 수 있다.
2) 원하는 형태로 넣기
"2021년 12월 21일 화요일" 대신에 "2021-12-21"로 설정해보자
private void Form3_Load(object sender, EventArgs e)
{
string sminday = "2021-12-21";
DateTime minday = DateTime.Parse(sminday);
dateTimePicker1.Value = minday;
}
3) 날짜 더하기 (datetime이지만..ㅇㅕ기에 슬쩍..)
datetime에는 AddDays, AddMonths, AddYears 라는 함수가 있다.
2021-12-21일에서 2 days를 더하면 2021-12-23일이다.
2021-12-21일에서 2 month를 빼면 2021-10-21일이다.
2021-12-21일에서 2 year을 더하면 2023-12-21일이다.
다음과 같이 설정할 수 있다는 것을 알아두고 다음 단계로 가자
private void Form3_Load(object sender, EventArgs e)
{
DateTime dt = DateTime.Now;
DateTime addday = dt.AddDays(-2);
addday = dt.AddMonths(-2);
addday = dt.AddYears(2);
dateTimePicker1.Value = addday;
}
4) 매달 1일로 설정하기
2021-12-21일에서 2021-12-01을 구하고 싶을 때 년, 월, + 01로 설정해도 되지만
연산을 통해 계산해보자
21일은 1일에서 21일이 지난 날이다, 그럼 반대로 21일을 빼주고 1일을 위해 1을 더해주자
private void Form3_Load(object sender, EventArgs e)
{
DateTime firstdt = DateTime.Now;
int curDay = firstdt.Day;
if (curDay == 1) firstdt = firstdt.AddDays(0);
else firstdt = firstdt.AddDays(-curDay + 1);
dateTimePicker1.Value = firstdt;
}
5) 매달 말일로 설정하기
1월은 31일 2월은 28일 3월은 31일 . . . 등 매달 말일은 특정 숫자로 설정할 수 없다.
그렇다면 매달 1일을 계산했기 때문에 1일에서 + 1달을 한 후 -1일을 하면 매달 말일일 것이다.
private void Form3_Load(object sender, EventArgs e)
{
DateTime firstdt = DateTime.Now;
int curDay = firstdt.Day;
if (curDay == 1) firstdt = firstdt.AddDays(0);
else firstdt = firstdt.AddDays(-curDay + 1);
dateTimePicker1.Value = firstdt;
DateTime lastday = firstdt.AddMonths(1).AddDays(-1);
dateTimePicker2.Value = lastday;
}
6) 값이 바뀌면 label 의 text에 날짜로 바꿔주기
- 이벤트 설정 : datetimepicker 선택 후 속성창에서 번개모양 선택 후 valueChanged 더블클릭 하면 자동으로 생성된다.
- datetimepicker 의 value를 받아 label text로 설정
private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
string fromdate = dateTimePicker1.Value.ToShortDateString();
label1.Text = fromdate;
}
private void dateTimePicker2_ValueChanged(object sender, EventArgs e)
{
string todate = dateTimePicker2.Value.ToShortDateString();
label2.Text = todate;
}
- 프로그램 확인
'c# > Winform' 카테고리의 다른 글
[c#] combobox DropDown, 열고 닫을 때 이벤트, 사이즈 변경 (0) | 2022.01.28 |
---|---|
[c#] panel 그라데이션(gradation) (0) | 2022.01.21 |
[c#] winform progressbar (0) | 2021.12.21 |
[c#] winform 버튼 못누르게 enable (0) | 2021.12.16 |
[c#] winform txt File 쓰기 (0) | 2021.12.15 |