闰年2月29号 通过apache的ftp工具从ftp上下载文件失败

 

当天系统所有使用到ftp的地方都出现下载文件失败,起初怀疑是网络或者内部ftp服务器有做什么变更,

 

但是手工共可以下载,并且登陆到外网别人的ftp上也是一样的问题,排除系统外原因,认为应该是应用问题

 

换了jar包版本以后,发现可以正常下载

 

网上资料说是:是由于使用的apachecommons-net-1.4.1.jar 包版本,存在已知bug建于每年有2-29号的这天的文件返回是null,导致无法下载

 

但是验证不通过,因为3月1号的文件任然下不过来

 

更新jar包版本后正常

好的,针对您的问题,可以使用Python内置的`input()`函数获取用户输入的年,然后再利用`datetime`模块进行期计算,并且考虑闰年229天的情况。具体实现过程如下: ```python import datetime def is_leap(year): """ 判断是否是闰年 """ return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0) def get_day_of_year(): """ 获取用户输入的年,并计算当年的第几天 """ date_str = input("请输入期(格式为YYYY-MM-DD):") year, month, day = map(int, date_str.split('-')) days_of_month = [31, 28 + is_leap(year), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] days = sum(days_of_month[:month - 1]) + day return days # 测试代码 print(get_day_of_year()) ``` 解释一下上述代码: 1. 我们定义了一个名为`is_leap`的函数,该函数用于判断是否是闰年,如果是闰年返回`True`,否则返回`False`。具体实现方式是判断年份是否能被4整除并且不能被100整除,或者能被400整除。 2. 接着,我们定义了一个名为`get_day_of_year`的函数,该函数内部先使用`input()`函数获取用户输入的期,期的格式为`YYYY-MM-DD`。 3. 然后,我们使用`split()`方法将输入的期字符串按照`-`进行分割,并使用`map()`函数将分割后的字符串转换为整型。 4. 接下来,我们定义了一个名为`days_of_month`的列表,用于存储每个份的天数,对于2份,如果是闰年则有29天,否则为28天。 5. 然后,我们使用`sum()`函数计算从1到当前份之前的所有份的天数之和,再加上当前份的天数,即可得到当年的第几天。 6. 最后,我们在函数外部调用`get_day_of_year`函数,即可输入期并得到结果。 希望可以帮到您!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值