计算年月日函数

原创 2016年04月05日 14:19:09

一:判断是否为闰年

bool isUnNormalYear(const long long year)
{
    if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0))
        return true;
    else
        return false;
}

二:判断某年某月某日为星期几

int CaculateWeekDay(long long y, long long m, long long d)
{
    if (m == 1 || m == 2) {
        m += 12;
        y--;
    }
    int iWeek = static_cast<int>((d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7);

    switch (iWeek)
    {
        case 0: printf("星期一\n"); break;
        case 1: printf("星期二\n"); break;
        case 2: printf("星期三\n"); break;
        case 3: printf("星期四\n"); break;
        case 4: printf("星期五\n"); break;
        case 5: printf("星期六\n"); break;
        case 6: printf("星期日\n"); break;
    }
    return iWeek + 1;
}

三:计算A(年月日)到B(年月日)之间相差天数

long long day_distance(long long year1, long long month1, long long day1,
                         long long year2, long long month2, long long day2)
{
    long long nd, nm, ny;       //new_day, new_month, new_year  
    long long od, om, oy;       //old_day, oldmonth, old_year  

    nm = (month2 + 9) % 12;
    ny = year2 - nm / 10;
    nd = 365 * ny + ny / 4 - ny / 100 + ny / 400 + (nm * 306 + 5) / 10 + (day2 - 1);

    om = (month1 + 9) % 12;
    oy = year1 - om / 10;
    od = 365 * oy + oy / 4 - oy / 100 + oy / 400 + (om * 306 + 5) / 10 + (day1 - 1);

    return od - nd;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

根据年月日计算星期几的函数

大部分日期计算正常, 2014-04-01 (星期2)计算出来的星期不正确。 原因:计算出来的 w可能出现负值, 求负数的余数需要特殊处理,需要按数论的计算方式求余数。网上很多代码存在此问题,少数日...

编写一个函数days,实现上面的计算。。由主函数将年月日传递给days,计算出该日在本年中是第几天并将结果传回主函数输出

// 121212 第七章习题2.cpp : 定义控制台应用程序的入口点。 // /* * Copyright (c) 2012, 烟台大学计算机学院 * All...

C++第三次作业——年月日||定期存款利息计算器||多分数段函数求值

1 问题及代码 /* * 文件名称:666666666666.cpp * 作 者:小1-21 * 完成日期:2017 年 5 月 6 日 * 版 本 号:v1.0 ...
  • xyq2017
  • xyq2017
  • 2017年05月06日 17:21
  • 223

计算年月日

  • 2013年05月03日 18:02
  • 157KB
  • 下载

第七周项目(2)-用友员函数增加年月日(另一种方法)

/* *copyright (c) 2016,烟台大学计算机学院 *All rights reserved. *文件名称:hellow.cpp *作者:田甜 *完成日期:2016年4月14日...

oracle与sqlserver利用函数生成年月日加流水号

科技优家 2017-01-18 08:34 最近在做oracle相关的项目,刚接触oracle,与sqlserver语法上还是有区别的 sqlserver : 示例:FX+当前年月日+000...

Java按自然月计算两个日期相差的年月日?

曾经我以为计算两个日期之差很简单,在给我的团队成员分配任务时,也觉得就是调用一个方法的问题,可是当我发现结果老是不对时,才发现原来JDK 提供的API中根本没有这样的方法,我也很恼火,也怪不得不少牛人...

hdu 4515 计算年月日

我太挫了 写了3000len的代码 #include #include #include #include #include #include #include #include #include ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:计算年月日函数
举报原因:
原因补充:

(最多只允许输入30个字)