计算你的生命过去多少天(Python和C实现)

计算你从出生到今天活了多少天(Python和C实现)

1.Python实现(6行代码完成)
from datetime import datetime

birth = "2000-02-02"

birth = datetime.strptime(birth, "%Y-%m-%d")

curdata = datetime.now()

count = (curdata - birth).days

print("从你出生到现在你活了:{}天".format(count))

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-b0DKmeeD-1650036600189)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220415230934649.png)]

如果你想看代码参数的运行过程中的变化过程可以加断点debug一下。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Tn77ViJC-1650036600190)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220415232541971.png)]

其实主要就是用了python的datatime包的strptime函数将一个“2000-02-02”这样格式的字符串转换一下格式

不知不觉已经活了8108天了,谁能写个代码帮我算一下还能再活多少天hh。

2.C语言实现

这个可以参考一下我一年前总结的蓝桥杯日期问题中计算两日期间的天数的代码。

文章链接:https://blog.csdn.net/qq_47997583/article/details/115798511

稍微修改一下的代码如下:

#include<iostream>
using namespace std;

int months[]={0,31,28,31,30,31,30,31,31,30,31,30,31};

bool judge(int time)
{
    int y=time/10000;
    int m=time%10000/100;
    int d=time%100;
    int leap=(y%4==0&&y%100!=0||y%400==0);
    if(m==0||m>13||d==0) return false;
    if(m!=2&&d>months[m]) return false;
    if(m==2&&d>28+leap) return false;
    return true;
}

int main()
{
	int time1 = 20000202;
	int time2 = 20220415; 
	int sum=0;
	for(int i=time1;i<=time2;i++)
	{
		if(judge(i))
		sum++; 
	}
	printf("你从出生到今天一共活了%d天",sum);
} 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q2SpN6WW-1650036600191)(C:\Users\admin\AppData\Roaming\Typora\typora-user-images\image-20220415231716622.png)]

啊诶,不是8108吗,怎么变成8109了。

仔细看一下,python是直接用当前减去出生,而C从出生那天算起累加。

举个极端例子,把出生日期设为昨天,也就是4月14日,Python算出来是1天,C代码算出来是2天,具体怎么看你自己决定。

我是中午12点出生的,现在马上晚上12点了,那我实际应该是活了8108.5天吧。

赶快试一试你活了多少天吧hh

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值