C#实现日历效果
作者:Ѧnonumb
这篇文章主要为大家详细介绍了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; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。