python 获取某个月的全部日期

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python 获取某个月的全部日期相关的知识,希望对你有一定的参考价值。

有没有类似方法,或一句代码就能搞定的~~ 不要太长的代码,尽量一句话搞定~

貌似没有现成的......从别的地方找一个能实现你说的功能的代码,你可以看看:

#encoding:utf8
def 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 获取某个月的全部日期的主要内容,如果未能解决你的问题,请参考以下文章

Oracle获取当前日期前一个月的全部日期

sql怎样列出一个月的全部日期

获取某一个月的全部工作日

excel中怎么使用函式计算某个月的最后一天日期

java如何实现在下个月的某一天自动获取某数据

pythonpython获取当前日期前后N天或N月的日期