番茄零乱初学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;
        }
    }
}

posted @ 2010-12-08 18:49  番茄零乱  阅读(333)  评论(0编辑  收藏  举报