怎么样计算今天是星期几

算法如下: 
基姆拉尔森计算公式
W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7

在公式中d表示日期中的日数,m表示月份数,y表示年数。

注意:在公式中有个与其他公式不同的地方:

把一月和二月看成是上一年的十三月和十四月,例:如果是2004-1-10则换算成:2003-13-10来代入公式计算。

代码如下:
 //y-年,m-月,d-日期
  string CaculateWeekDay(int y,int m, int d)
  {
  if(m==1) m=13;
  if(m==2) m=14;
        int week=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7; 
  string weekstr="";
   switch(week)
   {
    case 1: weekstr="星期一"; break;
    case 2: weekstr="星期二"; break;
    case 3: weekstr="星期三"; break;
    case 4: weekstr="星期四"; break;
    case 5: weekstr="星期五"; break;
    case 6: weekstr="星期六"; break;
    case 7: weekstr="星期日"; break;
   }

return weekstr; 
  }

调用方法:
Label2.Text=CaculateWeekDay(2004,12,9);

时间: 2024-10-11 23:23:21

怎么样计算今天是星期几的相关文章

计算当天为星期几

想知道某个日期是星期几时,不一定要打开日历才能找出来.只要学会以下这个方程式,任何日期都可以算出是星期几. 首先,让我们先看看以下这三个表格里面的代码. | 星期 | 代码 || 星期日 | 0 || 星期一 | 1 || 星期二 | 2 || 星期三 | 3 || 星期四 | 4 || 星期五 | 5 | | 星期六 | 6 | | 月份 | 代码 || 一月 | 6 || 二月 | 2 || 三月 | 2 || 四月 | 5 || 五月 | 0 || 六月 | 3 || 七月 | 5 ||

PostgreSQL 当月最后一天的工作日 , 计算日期是星期几

可以用pg自带函数select extract(dow from current_date),之所以没用主要是展示一下通过数学方法计算日期的原理. drop function if exists getDateWeek(date);drop function if exists intervalDay(date);drop function if exists getMonMaxDay(integer,integer);drop function if exists getMonMaxDate(

<swustoj>?id=78 计算生日是星期几

链接http://acm.swust.edu.cn/problem/0078/ #include <stdio.h> bool LeapYear(int year) { return((year%400==0)||(year%100!=0&&year%4==0)); } int main() { int i; int year,month,day; int sum; int monthday[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}

输入一个日期,判断这个日期在一年中是哪一天,是星期几,计算两个日期间的天数,使用字符串输出日期

之前写了一个博文(http://blog.csdn.net/shiwazone/article/details/45053739)是用基本函数实现的,这次使用类的设计方法,也就是面向对象的方法改写一下,并加入了日期转换成字符串的实现.这里的程序也可以解决编程珠玑习题3.4的问题. #include"calendar.h" int main() { Time t; t.initialTime(); t.Show(); t.StrShow(); Time t1; t1.initialTim

总天数以及星期几的计算算法

在写程序的过程中,需要判断两个日期是否处在一个星期之内,如果用C++类库CTime,则只能计算1970年之后的日期,之前的日期就会报错,于是研究了几个星期计算算法,改写出一个计算从1年1月1日起到输入日期之间的天数,如果他们的除数相同,则表明他们在一个星期之内(原理参见参考文章<蔡勒算法>),同时该方法也可以计算两个日期之间的天数差. 日期计算关于<1582年10月4日和1752年9月3日 >这两个日期都有特殊的历史,蔡勒公式和基姆拉尔森公式也都给出了在特殊日期前后的计算方式,如计

C++ 实现判断一个输入日期是星期几,是一年中的第几天

/* 通过输入年月日,计算出这一天是星期几,计算这一天是这一年的多少天,判断这一年是否为闰年 */ #include<iostream> using namespace std; struct time { int year; int month; int day; unsigned int weekday; }; void initialtime(time & t);//输入初始化时间 void Show(time & t);//显示时间信息 int Weekdaycount

java中关于时间日期操作的常用函数

Date类 在JDK1.0中,Date类是唯一的一个代表时间的类,但是由于Date类不便于实现国际化,所以从JDK1.1版本开始,推荐使用Calendar类进行时间和日期处理.这里简单介绍一下Date类的使用. 1.使用Date类代表当前系统时间 Date d = new Date(); System.out.println(d); 使用Date类的默认构造方法创建出的对象就代表当前时间,由于Date类覆盖了toString方法,所以可以直接输出Date类型的对象,显示的结果如下: Sun Ma

Excel函数公式 (日期函数)

1.=TODAY() 取当前的系统日期 2.=NOW() 取当前系统日期和时间 3.= NOW()-TODAY() 计算当前是几点几分.也可以用=MOD(NOW(),1)计算. 4.=YEAR(TODAY()) 取当前日期的年份 5.=MONTH(TODAY()) 取当前日期的月份 6.=DAY(TODAY()) 计算当前日期是几号. 7.=WEEKDAY(TODAY(),2) 计算今天是星期几. 第二参数是2,表示将星期一计算为1,这样比较符合国人的习惯.也可以写成=TEXT(TODAY(),

20150817---成长日记1---DelayQueue&amp;&amp;Delayed&amp;&amp;Other

今天第一次接触DelayQueue,源于项目中的话单解析入库的拆分线程中引入,首先简单了解一下DelayQueue: DelayQueue是一个无界阻塞队列,只有在延迟期满时才能从中提取元素.该队列的头部是延迟期满后保存时间最长的Delayed 元素. 问题1:如何来判断延迟期是否满了呢?   ----后面解答,下面继续. DelayQueue阻塞队列在我们系统开发中也常常会用到,例如:缓存系统的设计,缓存中的对象,超过了空闲时间,需要从缓存中移出:任务调度系统,能够准确的把握任务的执行时间.我