根据NSDate或年月日得到是星期几

本文提供了一个实用的方法来计算特定日期是星期几。通过一个C语言函数实现,该函数接受年、月、日作为参数,并返回对应的星期数值。文章还展示了如何使用Objective-C获取当前日期的时间组件。
NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    NSDate *now2;
    NSDateComponents *comps = [[NSDateComponents alloc] init];
    NSInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSWeekdayCalendarUnit | 
    NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;
    now2=[NSDate date];
    comps = [calendar components:unitFlags fromDate:now2];
    int week = [comps weekday];    
    int month = [comps month];
    int day = [comps day];
    int hour = [comps hour];
    int min = [comps minute];
    int sec = [comps second];

根据年月日计算星期

/******************************************************* 
 ** 
 **   求输入日期是星期几   (0表示星期天,其余为   1-6) 
 **   如果你要输出是星期几那就自己去加工一下就OK,很简单的啦! 
 ** 
 ********************************************************/ 
int SW_WeekDay(int   year,   int   month,   int   day) 
{         
    int   DayOfWeek; 
    /*下面的四条语句用来计算输入日期的星期数,是程序的核心部分,缺一不可*/ 
    DayOfWeek   =   year   >   0   ?   (5   +   (year   +   1)   +   (year   -   1)/4   -   (year   -   1)/100   +   (year   -   1)/400)   %   7   
    :   (5   +   year   +   year/4   -   year/100   +   year/400)   %   7;               
    DayOfWeek   =   month   >   2   ?   (DayOfWeek   +   2*(month   +   1)   +   3*(month   +   1)/5)   %   7   
    :   (DayOfWeek   +   2*(month   +   2)   +   3*(month   +   2)/5)   %   7; 
    if   (((year%4   ==   0   &&   year%100   !=   0)   ||   year%400   ==   0)   &&   month> 2) 
    { 
        DayOfWeek   =   (DayOfWeek   +   1)   %   7; 
    } 
    DayOfWeek   =   (DayOfWeek   +   day)   %   7; 
    return   DayOfWeek; 
}

转载于:https://www.cnblogs.com/smallyin00/archive/2012/11/19/2777856.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值