番茄零乱初学C#之计算某天是星期几[蔡勒(Zeller)公式]
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Thursday { class Program { static void Main(string[] args) { Console.WriteLine(Thursday(2010, 2, 10)); } //蔡勒(Zeller)公式:“w=y+[y/4]+[c/4]-2c+[26(m+1)/10]+d-1公式中的符号含义如下,w:星期;c:世纪-1;y:年(两位数); m:月(m大于等于3,小于等于14,即在蔡勒公式中,某年的1、2月要看作上一年的13、14月来计算,比如2003年1月1日要看作2002年的13月1日来计算);d:日;[ ]代表取整,即只要整数部分。 public static int Thursday(int year,int mon,int day) { //世纪 int century = int.Parse(year.ToString().Substring(0, 2)); year = int.Parse(year.ToString().Substring(2 ,2));//年份 if (mon == 1 || mon == 2) { mon += 12; //'某年的1、2月要看作上一年的13、14月来计算 year -= 1; } int week ; week = year + year / 4 + century / 4 - century * 2 + 26 * (mon + 1) / 10 + day - 1; week = week % 7; if (week < 0) { week += 7; } return week; } } }