这篇文章主要讲解了“C#如何实现日历效果”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#如何实现日历效果”吧!
展示:
主要代码:
public partial class calendar : Form { public calendar() { InitializeComponent(); } int year, month; private void textBoxMonth_TextChanged(object sender, EventArgs e) { if (textBoxMonth.Text == "") month = 0; month = Convert.ToInt32(textBoxMonth.Text); } private void buttonSearch_Click(object sender, EventArgs e) { seach(); } private void textBoxYear_TextChanged(object sender, EventArgs e) { year = Convert.ToInt32(textBoxYear.Text); } private void buttonLastMonth_Click(object sender, EventArgs e) { int year = Convert.ToInt32(textBoxYear.Text); int month=Convert.ToInt32(textBoxMonth.Text); if (year == 1 && month == 1) { year = 1; month = 1; } else { if (month > 1) { month--; textBoxMonth.Text = Convert.ToString(month); seach(); } else { textBoxMonth.Text = Convert.ToString(12); year--; textBoxYear.Text = Convert.ToString(year); seach(); } } } private void buttonNextMonth_Click(object sender, EventArgs e) { int month = Convert.ToInt32(textBoxMonth.Text); if (month < 12) { month++; textBoxMonth.Text = Convert.ToString(month); seach(); } else { textBoxMonth.Text = Convert.ToString(1); int year = Convert.ToInt32(textBoxYear.Text); year++; textBoxYear.Text = Convert.ToString(year); seach(); } } private void buttonLastYear_Click(object sender, EventArgs e) { int year = Convert.ToInt32(textBoxYear.Text); if(year>1) { year--; textBoxYear.Text = Convert.ToString(year); textBoxMonth.Text = Convert.ToString(1); seach(); } } private void buttonNextYear_Click(object sender, EventArgs e) { int year = Convert.ToInt32(textBoxYear.Text); year++; textBoxYear.Text = Convert.ToString(year); textBoxMonth.Text = Convert.ToString(1); seach(); } public void seach() { if (textBoxYear.Text == "" || textBoxMonth.Text == "") labelAlert.Text = "请输入年份及月份"; else if (Convert.ToInt32(textBoxYear.Text) <= 0 || Convert.ToInt32(textBoxMonth.Text) <= 0 || Convert.ToInt32(textBoxMonth.Text) > 12) labelAlert.Text = "输入的年份与月份不能小于0,月份不能大于12"; else { textBoxDemonstrate.Text = "周一 周二 周三 周四 周五 周六 周日" + "\r\n" + "\r\n" + "\r\n"; textBoxDemonstrate.Text += compute(year, month); } } public bool leap_Year(int year) { if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) return true; else return false; } public string compute(int year, int month) { int days1 = (year - 1) * 365; for (int i = 1; i < year; i++) { if (leap_Year(i)) days1++; } int[] monthArray = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 }; if (leap_Year(year)) monthArray[1] = 29; int days2 = 0, monthDays = monthArray[month - 1]; for (int i = 0; i < month - 1; i++) { days2 += monthArray[i]; } int days = days1 + days2; string strCalendar=""; for (int i = 0; i < days % 7; i++) strCalendar += " "; for(int i=1;i<monthDays+1;i++) { if (i < 10) strCalendar += " " + i + " "; else strCalendar += Convert.ToString(i + " "); if ((i+ days % 7) % 7 == 0) strCalendar += "\r\n"+"\r\n" + "\r\n"; } return strCalendar; }}
感谢各位的阅读,以上就是“C#如何实现日历效果”的内容了,经过本文的学习后,相信大家对C#如何实现日历效果这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!