精华内容
下载资源
问答
  • 年月日的计算公式
    2021-05-23 04:07:53

    基姆拉尔森计算公式

    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来代入公式计算。

    下面是C语言的写的code:

    char *CaculateWeekDay(int y,int m,int d){ if(m==1||m==2)  {  m+=12;  y--; }    int week=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;    char *weekstr="";    switch(week) {  case 0: weekstr="星期一"; break;  case 1: weekstr="星期二"; break;  case 2: weekstr="星期三"; break;  case 3: weekstr="星期四"; break;  case 4: weekstr="星期五"; break;  case 5: weekstr="星期六"; break;  case 6: weekstr="星期日"; break; } return weekstr;}#include int main(){ int year,month,day; char *str; scanf("%d %d %d",&year,&month,&day); str=CaculateWeekDay(year,month,day);    puts(str); return 0;}

    更多相关内容
  • 主要介绍了C++基于蔡基姆拉尔森计算公式实现由年月日确定周几的方法,涉及C++针对日期时间的数值运算相关操作技巧,需要的朋友可以参考下
  • 原标题:「每日一练」Python实现输入年月日计算第几天那天碰到一个小伙问我:你数学不是很牛逼吗,那我给你说某一年的某一月的某一天,你能马上给我算出这是那一年的第几天吗?我瞬间哑口无言!最近,突然想到这个事...

    原标题:「每日一练」Python实现输入年月日计算第几天

    那天碰到一个小伙问我:你数学不是很牛逼吗,那我给你说某一年的某一月的某一天,你能马上给我算出这是那一年的第几天吗?我瞬间哑口无言!

    最近,突然想到这个事,用python随便写了几行,轻轻松松的就实现了!

    案例

    输入某年某月某日,判断这一天是这一年的第几天?

    先上代码~

    a61cc39fb43e4fe2a5503bfc2a01209a.jpeg

    运行效果

    3eddf97b2ae8442c9b480afac5d346e0.jpeg

    题目详述

    程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于2时需考虑多加一天:

    前三行:

    year = int(input('年:\n'))

    month = int(input('月:\n'))

    day = int(input('日:\n'))

    这是用来输入年、月、日的,并将它们转换成数字,赋值给不同的变量

    第四行:

    months = (0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334)

    除了二月外,其余的上个月月底是今天的第几天

    第五行:

    if 0 < month <= 12:

    sum = months[month - 1]

    else:

    print('填写的日期错误')

    用月来判断,如果大于0,小于等于12,得到上个月月底是今年的第几天

    第六行:

    sum += day

    再加上这个月的天数,就得到了是今年的第几天

    第七行:

    leap = 0

    if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):

    leap = 1

    if (leap == 1) and (month > 2):

    sum += 1

    通过判断是否是瑞年,考虑二月那一天是否加1:

    如果是闰年,并且输入的月份大于2,就需要将天数加1,因为闰年的2月是29天

    进阶:

    轻松的就算出了是当年的第几天

    是不是很便捷呢

    结束语

    总体来说思路只要有了,以后遇到类似的问题就可以解决了,是不是发现原来Python可以这么神奇!

    ———— e n d ————

    f09649f963c64272b342e600cb797347.jpeg

    觉得文章不错的,欢迎点在看和转发返回搜狐,查看更多

    责任编辑:

    展开全文
  • PHP 年月日

    千次阅读 2019-01-22 11:04:53
    // 计算出本月第一天再减一个月 $enddate = date('Y-m-d', strtotime(date('Y-m-01') . ' -1 day')); // 计算出本月第一天再减一天 //获取一天前日期:其中值:-1为变量;-1为一天前,以此类推 $daytime= date("Y-m...

    $btime=date("Y-m-d H:i",mktime(0,0,0,date('m'),date('d'),date('Y')));
    $etime=date("Y-m-d H:i",mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1);
    $tomorrow_begin = date("Y-m-d H:i",strtotime($btime) + 86400);// 明天开始时间
    $tomorrow_end = date("Y-m-d H:i",strtotime($etime) + 86400);// 明天结束时
    
    //获取本月起始日期
    $begindate=date('Y-m-01', strtotime(date("Y-m-d")));
    $enddate =date('Y-m-d', strtotime("$begindate +1 month -1 day"));
     
     
    //获取一年前的日期
    $begindate= date('Y-m-d', strtotime(date('Y-m-01') . ' -1 year')); 
    $begindate= date("Y-m-d H:i:s", strtotime("-1 year"));
     
     
    //获取一个月前的日期:其中值:-1为变量
    $mothtime= date("Y-m-d H:i:s", strtotime("-1 month"));
     
     
    //获取几个月以前的起始日期:其中值:-1为变量
     $begindate= date('Y-m-d', strtotime(date('Y-m-01') . ' -1 month')); // 计算出本月第一天再减一个月
     $enddate = date('Y-m-d', strtotime(date('Y-m-01') . ' -1 day')); // 计算出本月第一天再减一天
     
     
    //获取一天前日期:其中值:-1为变量;-1为一天前,以此类推
    $daytime= date("Y-m-d H:i:s", strtotime("-1 day"));
     
     
    //获取一小时前的日期时间
    $hourtime = date("Y-m-d H:i:s", strtotime("-1 hour"));

    展开全文
  • 比如可能将一些字符串识别为不想要的日期 parse 输出结果 可以看到,把42这种无法直接识别的字符串识别成了2042年的当天(上面是一个很好的例子)当然了,其实也可以理解,对于时间来说,最好的当然还是有年月了,...

    ba613dbd0ca83f2a354d3ef9a073224d.png

    终于迎来了周末,能让我有时间把这周立的flag全部解决掉。

    在上一篇pandas练习中,我有提到要把python的时间处理单独写一篇,如果有读者仔细观察的话,可以看到我用的图片就是时间模块datetime里面的一些操作。那么我们今天的要学习的内容就是datetime内建模块和pandas库中处理时间的几个函数,以及resample, re-sample是重新采集的意思,也可以理解为把时间按照一定的约定重置。

    刚好最近做的pandas练习系列里面刚好有一个章节是时间序列的练习的。

    所以学完基础的知识以后加上一个练习,我相信可以对这个部分能有不同的理解。

    好的,让我开始快乐的时间之旅吧。

    首先申明我学习这种库喜欢直接去啃官方的文档,来源在这

    datetime - Basic date and time types - Python 3.7.4rc1 documentation​docs.python.org

    以及

    pandas.to_datetime - pandas 0.24.2 documentation​pandas.pydata.org

    还有

    Resampling - pandas 0.24.2 documentation​pandas.pydata.org

    有兴趣的伙伴也可以自己去这几个网址学习。

    在今天回顾之前写的文章的过程中,我发现自己有一个很大的缺点,那就是缺乏逻辑性,之前的文多有一种随性所为的意思,所以我想从这篇文章开始,引入思维导图,这一方面方便各位读者,另一方面当我自己回头看自己的写过的文的时候,也能更加的方便的常读常新。

    一、python有很多库可以用来处理时间,如:datetime,time,calendar等

    5f3ce63a6f27cbd4e644764409dbbd15.png
    python常用的处理时间的库

    而datetime常用的是datetime.datetime函数。我们今天就从datetime来入手了

    学习任何一个模块的时候都应该先看这个库都有哪些模块

    同样的使用导图

    332014c328164eea15e69b10921ba0c2.png
    datetime库的基本信息

    开始这个库之前,我们要首先看两个参数

    datetime.MINYEAR=1

    datetime.MAXYEAR=9999

    这两个类表示的是datetime从1到9999,这对于我们的处理来说足够了,毕竟看到这篇文章的没有人可以到9999年。LOL

    通过上面的图形,能够清楚的看到,datetime库最常用的是timedelta和datetime这两个类。

    我们首先看一下timedelta

    from datetime import datetime
    now = datetime.now()
    now

    7267b444654b9f59d66a775107bf02eb.png
    输出结果

    求解一个时间差

    delta = datetime(2000,1,7) - datetime(1998,6,23,7,16)
    delta

    620c6600be0e798c162fe9c5608cfba2.png
    输出结果
    delta.days

    996d4290c2ae5b9e596fe599304bc7c8.png
    输出结果
    delta.seconds

    586ad52b4b1366f6e030dd224b166c94.png
    输出结果

    这两个语句就是表示的两个时间的差值,其中delta.days表示的是两个时间之间相差的天数,delta.seconds表示的是相差的秒钟数。也就是我输入的这两个时间相差562天,60240微秒

    我们再来看一下timedelta的一些基本操作

    from datetime import timedelta
    year = timedelta(days=365)
    another_year = timedelta(weeks=40,days=84,hours=23,
                            minutes=50,seconds=600)
    year.total_seconds()

    290f8332a12381555c57a4451e0586b6.png
    输出结果
    year == another_year

    359f37de25d90addadc1e30c91064228.png
    输出结果

    时间的相加

    start 

    fb1b70edcb194ebe20543c6acbb8d532.png
    输出结果

    时间相减

    start 

    59a7bdd366b52922124cfa49ee317528.png
    输出结果

    好的,下面主要来看一下datetime.datetime,我们之所以学习datetime库是因为在实际的工作中,时间格式不是统一的,不同的人会有不同的写法。使用datetime可以按照我们想要的时间格式来实现

    datetime.today()

    6682739f0e6273df37e5c0f75848fe97.png
    输出结果

    获取当前的时间

    datetime.now()

    e0abe2c4dd09aa468cc1ab35e0a58992.png
    输出结果

    获取伦敦的当前时间,因为,我们知道我们是东8区,所以应该相差8个小时

    datetime.utcnow()

    8235b7d3f5a883f958c2bf61c6bfe001.png
    输出结果

    可以看到确实是相差了8个小时。

    下面看一个比较常用的字符串型时间转换为常见的日期格式的操作。

    有两种操作

    1 strftime(format)
    2datetime.strptime(string,format)

    现在分别介绍一些这两个用法

    stamp 

    b337c568d99a0c4a1d548024424352c5.png

    我们在来看一下第二中操作时间的做法

    dt = datetime.strptime('21/11/06 16:30','%d/%m/%y %H:%M')
    dt

    fa9e544110fca1f6530b3d158d0b22b3.png
    输出结果

    能够看到这两个的做法的区别是什么,1第一种做法是直接操作一个字符串的,而第二种的做法是把字符串传递给模块,然后根据格式操作。

    但是以上的两种做法都有一个问题,就是每次使用时都要编写一个格式,这个就很方便了,所以这里介绍一个第三方包dateutil 这个库中有一个类parser 这个类种有一种做法是parser.parse

    我们来看一下

    from dateutil.parser import parse
    parse('2001-01-03')

    cb7d9ada40beef868d26a68598e641a1.png
    输出结果

    再看一个例子,

    parse('20140608')

    03e65a2076cdaa56322aa4f918b2325f.png
    输出结果

    可以看到这个处理时间非常方便,可以直接把类似于时间的格式,直接处理成数据的形式,简单方便。

    基本所有的日期表示dateutil都能够解析,比如下面这个

    parse('Jan 31,1997 10:45 PM')

    f24d6168a8439665b524f132425af97d.png
    输出结果

    在国际上经常能够看到日期出现在月份之前,可以传递dayfirst = True来表明这种情况

    如下所示

    parse('6/12/2011',dayfirst=True)

    54e0d59af5be76947383ca50541d2abd.png
    输出结果

    以上是介绍了datetime以及一个非常好用的库dateutil,但是要注意的是,dateutil是一个好用但是不完美的工具,比如可能将一些字符串识别为不想要的日期

    parse

    cd231b4caf67e68010a74803b148e3ed.png
    输出结果

    可以看到,把42这种无法直接识别的字符串识别成了2042年的当天(上面是一个很好的例子)当然了,其实也可以理解,对于时间来说,最好的当然还是有年月日了,所以这个库还是很还用的。

    各位关注我的朋友应该知道,我最近一直在写一个系列,那就是pandas练习,了解一点pandas的应该都知道,pandas真的超级好用,不仅可以处理不同格式的数据,还可以画图,有一位朋友给我留言说为什么不用pandas直接绘图,其实我知道pandas能够绘制图,但是这通常需要和matplotlib一起用。所以我就没用panda绘图。

    好吧扯得有点远,下面我们来看一下pandas处理时间时的一些应用,这个主要包含todatetime,resample,还有用来处理时间索引的data_range

    下面我将重点说明这三个部分。

    首先我们来看一下pandas.to_datetime,这个模块可以很好的转换很多不同的日期表示格式。

    老规矩,还是先看一下这个模块的参数

    pandas

    我专门做了一个表格来说明这些参数分别代表着什么以及怎么使用

    141a646378cc72c8d51470b3bb04774f.png
    这是我自己按照官方文档翻译的,可能会有一些错误,还请各位看官谨慎参考

    下面我们看一些例子,来加深理解

    df = pd.DataFrame({'year':[2015,2016],
                      'month':[4,3],
                      'day':[4,5]})
    pd.to_datetime(df)

    693b9e8641cd22f9ac6bb10da30a046b.png
    输出结果

    这个例子中转换的数据是DataFrame

    dt = '2016-07-08'
    pd.to_datetime(dt)

    5940d62dd1d02c8d5f7175744de444eb.png
    输出结果

    这个例子使用的是字符串型

    下面我们做一个整型数据的转换

    dt1 = 20190807
    pd.to_datetime(dt1,unit='s')

    e2cbbaf75b329b2c4cfe4adf10c08c46.png
    输出结果

    我们在看一下errors的用法

    #把dt1转换成想要的时间格式
    pd.to_datetime(dt1,format='%Y%m%d',errors='ignore')

    b06ab63b542a2c403732c9ca85649f1d.png
    输出结果

    再来一个

    pd.to_datetime('13000101',format='%Y%m%d',errors='coerce')

    1ec9bd2b09c98e54a4766b159505a94d.png
    输出结果

    NaT=Not a Time是时间里面的空值

    我们再来看一下infer_datetime_format等于True时的执行顺序,

    #首先创建一个数据
    s = pd.Series(['3/11/2000','3/12/2000','3/13/2000']*1000)
    s.head()

    8d7de18ea447592d50d1c51855549a98.png
    输出结果

    在看一下执行用时,这里要使用魔法函数,以及即时函数timeit

    %timeit pd.to_datetime(s,infer_datetime_format=True)

    8248cd4747c480a50b02727265cc98f8.png
    输出结果
    %timeit pd.to_datetime(s,infer_datetime_format=False)

    9155a2149499996bdb6702a0b65b9aaa.png
    输出结果

    能够看到着两个语句执行速度的区别,infer_datetime_format=True的执行速度是infer_datetime_format=False的20多倍

    好的到这里to_datetime这个模块基本到位了,这个可以和to-numeric模块联系起来,很方便,很强大,能够处理的数据类型很多

    由于最后一部分resample的内容特别多,所以我想了想还是分两部分来写吧。

    好的今天就到这里了,我们下期节目再见!

    哈哈哈,期待朋友们的点赞!谢谢!!!

    展开全文
  • 根据出生年月及身份证计算公式.pdf
  • 本篇文章主要是对利用JS实现根据出生年月计算年龄的示例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助
  • 根据出生年月及身份证计算公式可用.pdf
  • 算法如下: 基姆拉尔森计算公式W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7 在公式中d表示日期中的日数,m表示月份数,y表示年数。注意:在公式中有个与其他公式不同的地方: 把一月和二月看成是上一年的十三月...
  • import java.text.ParseException; import java.text.SimpleDateFormat;...//根据年月日计算年龄 public class AgeUtils { public static String getAgeFromBirthTime(Date birthDay){ Calendar cal
  • 在Excel中,系统把日期和时间视为一种数值的特殊表现形式,它更倾向于是一种形式,而不是数据类型,实质仍然是数值,可以...当然我们用单元格格式自定义设置也是可以完成的,今天分享的是用TODAY函数公式来设置。...
  • 基姆拉尔森计算公式 W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7 在公式中d表示日期中的日数,m表示月份数,y表示年数。 注意:在公式中有个与其他公式不同的地方:  把一月和二月看成是上一年的十三月和十四月...
  • 蔡勒公式 输入:year:取年份后2位,比如2021取21 输出结果:0-星期,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6-星期六 **/ uint8_t getDayOfWeek(uint8_t year, uint8_t month, uint8_t day) { ...
  • 蔡勒公式
  • 基姆拉尔森计算公式 W= (d+2m+3(m+1)/5+y+y/4-y/100+y/400) mod 7 二、代码部分 1.引入库 代码如下(示例): #include<stdio.h> 2.主函数部分 代码如下(示例): int main() { int w, y, m, d; scanf
  • public static void main(String[] args) { int weekDay = CalculateWeekDay(2021,...//基姆拉尔森计算公式根据日期判断星期几 public static int CalculateWeekDay(int y, int m, int d) { if (m == 1 || m == 2) {
  • 计算方法 //d: m:月 y:年 int whatDayIsToday(int d, int m, int y) { if (m == 1 || m == 2) m += 12, y--; return (d + 2 * m + 3 * (m + 1) / 5 + y + y / 4 - y / 100 + y / 400) % 7 + 1; } ...
  • 年月日计算星期公式

    千次阅读 2015-12-09 11:16:43
    if( M==1 || M==2 ) { M+=12; --Y; } //1582年9月3后:w = (d + 2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7; //1582年9月3前:w = (d+2*m+3*(m+1)/5+y+y/4+5) % 7;... //蔡勒公式 0是星期天 if( Y ||
  • 已知年月日利用公式求星期几模板
  • 虽说网上好多根据年月日计算年龄的,但是有的是粗略计算年龄,有的就没有防护未来的日期,以至于年龄存在负数的情况。 so,自己动手丰衣足食,写了以下工具类: package com.jglz.qing.age; import java.text....
  • import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date;...* @version 2019年12月17 上午9:33:40 * */ public class getAgeByBirthday { public static int getAgeByBirt...
  • 计算公式 由于罗马教皇搞了一些骚操作,这里给出的公式仅适用于1582年10月15以后的星期,详情可参考 格里高利历 符号意义 w:星期; w对7取模得:0-星期,1-星期一,2-星期二,3-星期三,4-星期四,5-星期五,6...
  • 以上就是今天要讲的内容,本文仅仅简单介绍了综合练习三之根据年月日计算星期。
  • 一、首先简单介绍一下儒略儒略是法国学者Joseph Justus Scaliger(1540-1609)设计的一种历法,与尤里乌斯·恺撒于公元前45年...二、儒略计算公式设Y为给定年份,M为月份,D为该月日期(可以带小数)。(1)若M ...
  • 大部分日期计算正常, 2014-04-01 (星期2)计算出来的星期不正确。 原因:计算出来的 w可能出现负值, 求负数的余数需要特殊处理,需要按数论的计算方式求余数。网上很多代码存在此问题,少数日期计算不正确。 ...
  • /*** 获取date1相距date2多少天, date2>date1* @param date1* @param date2* @return* @throws ParseException*/public static int getDaysSpace(String date1,String date2){Calendar cal = Calendar....
  • 今天项目中有个根据出生年月日,需要精确计算年龄的算法,找了半天才算有个正确的,分享出来给牛牛们成为自己java代码库的一部分算法。public static int getAge(Date dateOfBirth) {int age = 0;Calendar born = ...
  • 想了解C/C++根据年月日计算星期几(蔡勒公式篇)的相关内容吗,AresKris在本文为您仔细讲解C/C++计算星期几的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:c++计算星期几的公式,c语言输入年月日计算星期几,...
  • 1,根据下面的计算公式即可得知某年某月某日是星期几 s=x-1+[(x-1)/4]-[(x-1)/100]+[(x-1)/400]+c x:公元年数,c:从这一年的元旦开始算到这天为止的天数(包括这天在内),式子中的方括号是取整运算。 2、求出s后...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 7,882
精华内容 3,152
热门标签
关键字:

年月日的计算公式