Codeup日期处理

    科技2022-08-25  100

    日期处理:

    1.计算两个日期的差值:

    已知给定了两个日期格式是:yyyy-mmmm-dddd,求两个日期的差值 思路:(1)可以用循环从小的日期加到大的日期看一共加了多少次,次数就是像个的天数,(2),可以用分而治之的想法,先将小的年份这年每月每月的加日子,如果是闰年而且月份大于2就多家一天,然后直接加一年的天数直到大年份的前一年,然后把大年份每月每月的日子加起来,

    2.计算日期是星期几:

    给定一个日子 yyyy-mmmm-dddd,要求得到这天是星期几:现在这里夸一下基姆拉尔森公式,这个公式就是专门干这个的 但是要说明的是,他把一月和二月当作了前一年的13月和14月,所以如果日期是1,2月就要把年数减1,然后月份加12再用公式: W=(d+2m+3(m+1)/5+y+y/4-y/100+y/400 +1)%7,具体原理的话我在百度与下康康

    3.一般日期模拟的题目的技巧

    闰年的判断和月份天数的存储

    int month[13][2] = {{0,0}, {31, 31}, {28, 29}, {31, 31}, {30, 30}, {31, 31}, {30, 30}, {31, 31}, {31, 31}, {30, 30}, {31, 31}, {30, 30}, {31, 31}}; bool isLeap(int year){ return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0); } int m_2[]={0,31,59,90,120,151,181,212,243,273,304,334,365}; // 用m_2数组来储存日子的递增 // 用年来调用日子:month[m][isLeap(year)];
    Processed: 0.009, SQL: 9