根据日期获得星期几

//根据日期获得星期几
unsigned char CaculateWeekDay(int y,int m, int d)
{
    unsigned char buf;
    if(m==1||m==2) {
        m+=12;
        y--;
    }
    int iWeek=(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)%7;
    switch(iWeek)
    {
    case 0: printf("星期一\n");
                buf = 0x02;
                break;
    case 1: printf("星期二\n"); 
                buf = 0x04;
                break;
    case 2: printf("星期三\n");
                buf = 0x08;
                break;
    case 3: printf("星期四\n"); 
                buf = 0x10;
                break;
    case 4: printf("星期五\n"); 
                buf = 0x20;
                break;
    case 5: printf("星期六\n");
                buf = 0x40;
                break;
    case 6: printf("星期日\n");
                buf = 0x80;
                break;
    default :
                break;
    }
    printf("buf : %x\n",buf);
    return buf;

### Python根据日期计算星期的多种方法 在Python中,可以通过多种方式根据指定日期计算出对应的星期。以下是种常见的实现方法: #### 方法一:使用`datetime.date.weekday()`方法 `weekday()`方法返回一个整数,表示星期,其中星期一为0,星期日为6。以下是一个示例代码: ```python from datetime import date date_obj = date(2023, 10, 5) weekday_index = date_obj.weekday() # 返回值为3,表示星期四[^1] week_list = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"] print(week_list[weekday_index]) # 输出:星期四 ``` #### 方法二:使用`calendar`模块中的`weekday()`函数 `calendar`模块提供了一个`weekday()`函数,可以直接获取某一天是星期。以下是一个示例代码: ```python import calendar year, month, day = 2023, 10, 5 weekday_index = calendar.weekday(year, month, day) # 返回值为3,表示星期四[^4] week_list = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"] print(week_list[weekday_index]) # 输出:星期四 ``` #### 方法三:使用`strftime()`方法 `strftime()`方法可以将日期格式化为字符串,通过传递`%A`指令可以获得英文的星期名称。如果需要中文名称,可以结合映射表进行转换。以下是一个示例代码: ```python from datetime import date date_obj = date(2023, 10, 5) weekday_name_en = date_obj.strftime("%A") # 返回值为"Thursday",表示星期四[^5] week_mapping = { "Monday": "星期一", "Tuesday": "星期二", "Wednesday": "星期三", "Thursday": "星期四", "Friday": "星期五", "Saturday": "星期六", "Sunday": "星期日" } print(week_mapping[weekday_name_en]) # 输出:星期四 ``` #### 方法四:使用`time`模块 `time`模块中的`localtime()`函数可以返回当前时间的时间元组,其中`tm_wday`字段表示星期,范围为0到6,分别对应星期一到星期日。以下是一个示例代码: ```python import time timestamp = time.mktime((2023, 10, 5, 0, 0, 0, 0, 0, 0)) local_time = time.localtime(timestamp) weekday_index = local_time.tm_wday # 返回值为3,表示星期四[^3] week_list = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"] print(week_list[weekday_index]) # 输出:星期四 ``` #### 方法五:使用`numpy`库 `numpy`库提供了`busday_count()`和`datetime64`类型,也可以用于计算日期对应的星期。以下是一个示例代码: ```python import numpy as np date_np = np.datetime64('2023-10-05') weekday_index = date_np.astype('datetime64[D]').view('i8') % 7 # 返回值为3,表示星期四[^6] week_list = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"] print(week_list[weekday_index]) # 输出:星期四 ``` #### 方法六:使用`pandas`库 `pandas`库中的`Timestamp`类也提供了`day_name()`方法,可以直接获取日期对应的星期名称。以下是一个示例代码: ```python import pandas as pd date_pd = pd.Timestamp('2023-10-05') weekday_name_en = date_pd.day_name() # 返回值为"Thursday",表示星期四[^7] week_mapping = { "Monday": "星期一", "Tuesday": "星期二", "Wednesday": "星期三", "Thursday": "星期四", "Friday": "星期五", "Saturday": "星期六", "Sunday": "星期日" } print(week_mapping[weekday_name_en]) # 输出:星期四 ``` ### 总结 以上方法均可实现根据日期计算星期的功能,具体选择哪种方法取决于实际需求和项目中已有的依赖库。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值