ACM模板——日期类

简介: ACM模板——日期类

一、年月日-->星期X

1、基姆拉尔森:w=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7 // w:0:星期一...依此类推


int cal1(int y,int m,int d)
{
    if(m==1||m==2)
        m+=12,y--;
    int w=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
    return ++w;
}

2、蔡勒公式:w=(y+y/4+c/4-2*c+26*(m+1)/10+d-1+7)%7 // w:0:星期日...依此类推

int cal2(int y,int m,int d)
{
    if(m==1||m==2)
        m+=12,y--;
    int c=y/100,ty=y%100;
    int w=ty+ty/4+c/4-2*c+26*(m+1)/10+d-1;
    return w%7==0?7:(w+7)%7;
}

Ps:公式符号说明:

w:0:星期日...依此类推(后面+7是因为考虑负数情况)

c:世纪-1(y前两位数)

y:年(y后两位数)

m:月(m>=3 && m<=14,即在蔡勒公式和基姆拉尔森公式中,某年的1、2月要看作上一年的13、14月来计算,如:2003年1月1日-->2002年的13月1日)

d:日



[]:代表取整(这里准确是向下取整),即只要整数部分。

二、待更新...

目录
相关文章
|
3月前
|
监控 数据采集
|
2月前
|
C++
手把手教你实现日期类(下)
手把手教你实现日期类(下)
32 0
|
2月前
|
C++
手把手教你实现日期类(上)
手把手教你实现日期类(上)
50 0
|
4月前
|
SQL 分布式计算 DataWorks
DataWorks产品使用合集之如何将STRING类型转换为DATETIME类型
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
C++
【C++基础】实现日期类
【C++基础】实现日期类
66 0
|
存储 人工智能 监控
带你读《云存储应用白皮书》之41:附录一:相关英文缩写释义
带你读《云存储应用白皮书》之41:附录一:相关英文缩写释义
215 0
|
SQL 存储 自然语言处理
OushuDB 用户指南之类型转换
OushuDB 用户指南之类型转换
91 0
|
SQL 存储 自然语言处理
OushuDB 用户指南类型转换之概述
OushuDB 用户指南类型转换之概述
58 0
|
存储 Serverless C++
C++学习笔记(六)——日期类的实现
C++学习笔记(六)——日期类的实现