python 获取某个月的全部日期
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 获取某个月的全部日期相关的知识,希望对你有一定的参考价值。
有没有类似方法,或一句代码就能搞定的~~ 不要太长的代码,尽量一句话搞定~
貌似没有现成的......从别的地方找一个能实现你说的功能的代码,你可以看看:
#encoding:utf8def w_day(y,m,d):#已知日期求星期
c=y//100
y=int(str(y)[-2:])
w=(y+(y//4)+(c//4)-2*c+(26*(m+1)//10)+d-1)%7 ##蔡勒公式只适合于1582年10月15日之后
return w
def ml(y,m,d=1):#当月有几天
ly=(y%400==0) or (y%4==0 and y%100!=0) and 1 or 0 #闰年=1,平年=0
return (m in (4,6,9,11) and 30 or (m==2 and 28+ly or 31))
def cal(y,m,d): #输出日历
wf=w_day(y,m=1,d=1) #该月的第一天是星期几
mc=[(d==x and ("["+str(x).rjust(2)+"]").center(5) or str(x).rjust(2).center(5)) for x in range(1,ml(y,m)+1)]
mc[:0]=[" "*5]*wf
mc=[(i+1)%7 and j or j+"\\n" for i,j in enumerate(mc)]
td=("%s年%s月%s日 星期%s\\n" %(y,m,d,("一","二","三","四","五","六","日")[w_day(y,m,d)-1])).center(35)
x="\\n Sun Mon Tue Wed Thu Fri Sat\\n"
return td+x+"".join(mc)
##################################################################
##################################################################
if __name__ == '__main__':
import datetime
T=datetime.date.today()
print("今天是:\\n"+cal(T.year,T.month,T.day)) 参考技术A >>> import time
>>> fun = lambda year, month: list(range(1, 1+time.localtime(time.mktime((year,month+1,1,0,0,0,0,0,0)) - 86400).tm_mday))
>>> fun(2013, 7)
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31] 参考技术B import datetime
oneday = datetime.timedelta(days=1)
def monthdays(y, m):
dt0 = datetime.datetime(y, m, 1)
return filter(lambda dt: dt.month==m,
map(lambda n: dt0+n*oneday, xrange(32))) 参考技术C import calendar
print range(calendar.monthrange(year, month)[1]+1)[1:]本回答被提问者采纳
获取从当前日期到下一个完整月的记录(直到下个月的最后一个日期)mysql [重复]
【中文标题】获取从当前日期到下一个完整月的记录(直到下个月的最后一个日期)mysql [重复]【英文标题】:Fetch record from current date to next whole month(till last date of next month) mysql [duplicate] 【发布时间】:2017-02-27 07:28:58 【问题描述】:即
假设当前日期是 18/10/2016 那么我想获取从 18/10/206 到 30/11/2016 的所有记录
这是场景,请帮助我从单个查询 mysql 中获取有效的方法来获取它。
【问题讨论】:
next whole month
是什么意思?未来 30 天还是下个月 1-28/29/30/31?
WHERE yourDate BETWEEN
从当前日期到下个月的最后一个日期,正如我用一个例子解释的那样,你没有看到?
【参考方案1】:
您可以使用BETWEEN
来比较日期。
借助LAST_DAY(date)
函数。
SELECT
*
FROM your_table
WHERE your_date BETWEEN CURDATE() AND LAST_DAY(CURDATE() + INTERVAL 1 MONTH)
注意:
LAST_DAY() 函数
MySQL LAST_DAY()
为日期或日期时间值返回相应月份的最后一天。如果日期或日期时间值无效,则函数返回NULL
。
【讨论】:
很抱歉,这是语法错误 请分享您尝试的查询以及遇到的错误。 这是错误:SQL 查询:文档 SELECT * FROM members_detail Birthdate BETWEEN CURDATE() AND LAST_DAY(CURDATE() + INTERVAL 1 MONTH) LIMIT 0, 25 MySQL 说:文档 #1064 - 你有SQL 语法错误;检查与您的 MySQL 服务器版本相对应的手册,以在第 1 行的 'BETWEEN CURDATE() AND LAST_DAY(CURDATE() + INTERVAL 1 MONTH) LIMIT 0, 25' 附近使用正确的语法 对不起,缺少 where 关键字,这是我的错误 我看到你没有使用WHERE
【参考方案2】:
$time = strtotime(date('Y-m-d'));
$final = date("Y-m-d", strtotime("+1 month", $time));
$nextMonth= date('t/m/Y',strtotime($final));
$now=date('d/m/Y');
$sql="select * from table where date>='".$now.' and date<=$nextMonth";
$res=mysql_query($sql);
【讨论】:
第一要务是尽可能只使用mysql,否则我们可以使用php,但谢谢哥们:)以上是关于python 获取某个月的全部日期的主要内容,如果未能解决你的问题,请参考以下文章