-
WeekDay计算函数
2008-07-11 17:37:00因此我们可以用某天的年月日推算出这一天是星期几(WEEKDAY)。 typedef unsigned long ULONG; typedef unsigned int UINT; /* 参数输出:1~7 对应星期一至星期天 */ typedef unsigned long ...公元纪年的来历 公元是“公历纪元”的简称,是国际通行的纪年体系。以传说中耶稣基督的生年为公历元年(相当于中国西汉平帝元年)。
由于公元纪年的起点是公元1年,而没有“公元0年”,所以大多数对公元纪年有充分了解的科学家和世界上大多数权威天文机构,都明确支持21世纪始于2001年的说法。
公元1年1月1日是星期一。因此我们可以用某天的年月日推算出这一天是星期几(WEEKDAY)。
typedef unsigned long ULONG;
typedef unsigned int UINT;
/*
参数输出:1~7 对应星期一至星期天
*/
typedef unsigned long ULONG;
typedef unsigned int UINT;
int GetWeekDay(int nYear, int nMonth, int nDay)
{
ULONG lWeekDay = 0; //要返回的weekday
ULONG lYear = nYear;
ULONG lMonth = nMonth;
ULONG lDay = nDay;
ULONG lDayCount = 0 ; //从1月1日到上月底的累计天数
UINT uArrMonth[]={31,28,31,30,31,30,31,31,30,31,30,31};
for(unsigned int i=0;i<(lMonth-1);++i)
lDayCount += uArrMonth[i];
if ( nMonth > 2)
{
if ( ( (lYear%4 == 0) && (lYear%100 != 0 ) ) || (lYear%400 == 0) ) //计算闰年
++lDayCount ;
}
lWeekDay = ((lYear-1)*365 + (lYear-1)/4 - (lYear-1)/100 + (lYear-1)/400 + lDayCount + lDay )%7;
if (lWeekDay==0) //
lWeekDay = 7; //星期几
return (int)lWeekDay;
}其实不需用long数据类型来计算,完全可以采用int型。但用了long型可以保证到一百万年后,该函数仍然正确。
-
iOS 10 中时区问题导致 DateTools 框架 weekday 方法计算不正确
2019-11-03 22:19:51某日发现 DateTools 的 weekday 方法在不同 iOS 上计算出的结果不一样的问题。具体表现为:在 iOS 10 上计算出的结果比 iOS 12 上的结果少一天。比如同样是 2019-09-23,iOS 10 上计算结果为 1,而 iOS 12 上计算...某日发现 DateTools 的 weekday 方法在不同 iOS 上计算出的结果不一样的问题。具体表现为:在 iOS 10 上计算出的结果比 iOS 12 上的结果少一天。比如同样是 2019-09-23,iOS 10 上计算结果为 1,而 iOS 12 上计算结果为 2。
跟踪代码发现,weekday 方法中调用了 [self componentForDate:self type:DTDateComponentWeekday calendar:nil]; 一句。
这里的 calendar 参数为 nil 表明将使用默认日历,而默认日历的 timezone 默认将使用本地时区。
但是,在 iOS 11 之前,NSTimeZone 无法正确获取系统设置的时区!因而导致计算出的结果少了一天。
分别在 iOS 11-12 和 iOS 10-10.3 下调用 NSTimeZone 的 defaultTimeZone、localTimeZone 和 systemTimeZone,以及 [NSCalendar currentCalendar].timeZone,发现后者无法正确获取到系统设置的当前地区。
以下测试在模拟器上进行,测试前都将地区设置为 China。
这是 iOS 11.4-12.4 的测试结果:
iOS 11.4 - 12.4 ------------------------------------ (lldb) po [NSTimeZone defaultTimeZone] Asia/Shanghai (GMT+8) offset 28800 (lldb) po [NSTimeZone localTimeZone] Local Time Zone (Asia/Shanghai (GMT+8) offset 28800) (lldb) po [NSTimeZone systemTimeZone] Asia/Shanghai (GMT+8) offset 28800 (lldb) po [NSCalendar currentCalendar].timeZone Asia/Shanghai (GMT+8) offset 28800
上面的结果显示,iOS 11.4 - 12.4 上,通过上述 API,能够正确获取到系统设置的时区(中国 +8 区)。
iOS 10-10.31 的测试结果如下:
iOS 10 - 10.31 ------------------------------------ (lldb) po [NSTimeZone defaultTimeZone] GMT (GMT) offset 0 (lldb) po [NSTimeZone localTimeZone] Local Time Zone (GMT (GMT) offset 0) (lldb) po [NSTimeZone systemTimeZone] GMT (GMT) offset 0 (lldb) po [NSCalendar currentCalendar].timeZone GMT (GMT) offset 0
上面的结果显示,iOS 10-10.31 上,无法正确获取到的系统当前时区,都会返回 GMT。
解决办法
用 weekdayWithCalandar 方法取代 weekday 方法。
NSCalendar* cal = [NSCalendar currentCalendar]; cal.timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"]; NSInteger w = [baseDate weekdayWithCalendar:cal];
-
asp使用Weekday函数计算项目的结束时间
2020-10-20 00:26:10在asp编程开发中,计算时间很容易,直接用项目开始时间+天数,即可得到项目结束时间,但这里麻烦就在要排除周六和周日这两个休息时间 -
关于datepart计算weekday时多一天引起的问题及解决方法
2012-12-18 17:29:13使用datepart计算weekday时我们会发现默认sql server返回的数字总是比实际的数值大一,如:2012-12-18是星期二,使用select datepart(WEEKDAY,'2012-12-18');得到值总是3,这是由于sql server默认星期天作为一周的第...使用datepart计算weekday时我们会发现默认sql server返回的数字总是比实际的数值大一,如:2012-12-18是星期二,使用
select datepart(WEEKDAY,'2012-12-18');
得到值总是3,这是由于sql server默认星期天作为一周的第一天引起的。有人简单指出在计算传值时只需要把当前日期减去一天就可以避免这个问题了,虽然这种方法很简单却有潜在的问题,例如:当我们计算某一天属于某一年的第几周时,会使用形如:
select datepart(week,@Day);
的方式进行查询,此时依然会存在以周日作为一周开始而引起的问题,如2013-1-6是2013年的第一个周的周日,使用
select datepart(WEEK,'2013-1-6');
计算得到的却是2,如果在日期上减去一天又会导致另一个问题,如2013-1-1分明是2013年的第一周,如果减去一天得到就成了53,因为减去一天就回到了2012-12-31,这一天属于2012年的第53周。
正确的处理方式还是要设置sql server以哪一天作为一周开始,这个设置是通过修改全局变量DATEFIRST来实现的,如果想要以周一作为一周的开始,可以通过:
set datefirst 1;
来实现,更详细的解释可以参考:
http://technet.microsoft.com/zh-cn/interopmigration/aa259210 -
建立枚举类型Weekday,假设今日为星期二,计算10天后为星期几。
2017-09-29 20:03:321、 建立枚举类型Weekday,假设今日为星期二,计算10天后为星期几。 #include typedef enum week{SUN,MON,TUE,WEN,THU,FRI,STA}Weekday; int main(){ Weekday day,tenday; int n; day=SUN; printf("输入数字...1、 建立枚举类型Weekday,假设今日为星期二,计算10天后为星期几。
#include<stdio.h>
typedef enum week{SUN,MON,TUE,WEN,THU,FRI,STA}Weekday;
int main(){
Weekday day,tenday;
int n;
day=SUN;
printf("输入数字:\n");
scanf("%d",&n);
tenday=(Weekday)((day+n+10)%7);
switch(tenday)
{
case SUN: printf("10天后是星期天\n"); break;
case MON: printf("10天后是星期一\n"); break;
case TUE: printf("10天后是星期二\n"); break;
case WEN: printf("10天后是星期三\n"); break;
case THU: printf("10天后是星期四\n"); break;
case FRI: printf("10天后是星期五\n"); break;
case STA: printf("10天后是星期六\n"); break;
}
return 0;
} -
PowerBI-日期和时间函数-WEEKDAY\WEEKNUM
2020-05-05 19:23:08WEEKDAY 释义:返回指示日期属于星期几的...应该使用 DATE 函数、计算结果为日期的表达式或其他公式的结果来输入日期 第二参数:用于确定返回值的数字 返回类型:1,周从星期日 (1) 开始,到星期六 (7) 结束 。... -
excel教程中weekday函数实例:快速返回日期对应的中文星期数
2016-02-26 14:26:10通过上一篇文章的介绍,我们了解了excel教程中weekday 函数的用法,也举了一个实例来说明... 我们可以利用excel教程中weekday函数来计算星期数,详见下图。 选中G2单元格,输入公式:=TEXT(WEEKDAY(F2,1),"aaaa -
seccion怎么返回对应_你还不知道WEEKDAY可以返回日期对应的星期数吗?
2020-12-11 04:49:35小编今天给大家分享一个快速计算所给日期为星期几的函数:返回某日期的星期数的函数:WEEKDAY()函数函数参数:WEEKDAY(Serial_number,Return_type)参数详解:Serial_number:要返回日期数的日期Return_type:确定返... -
组合日期_Excel使用Today、Weekday、Lookup、Row函数组合获取近两周日期
2020-12-24 14:33:41用Excel公式自动给出包括今天在内的向前一周的,一共两周的...首先要计算出TODAY位于14天中的哪个位置,然后再计算出调整天数,最后用TODAY+调整天数就可以了ROW函数的作用就是构造出序列数组:ROW($1:$7)={1;2;3;4;... -
java周切分,按照指定weekday为一周的开始
2016-10-13 11:54:55目标:扩充周的概念为周六到周五、周四到周三。...以周六到周五为例,先拿到start_date所在的年份的第一个周六FirstSaturday作为第一周,将start_date向后拨到第一个周六,然后计算start_date与FirstSaturday -
日期计算
2016-09-20 12:41:08'周 Dim intWeekDay As Integer Dim stDay As DateTime '本周第一天 Dim PstDay As DateTime '上周第一天 ... intWeekDay = DatePart(DateInterval.Weekday, Today) '取得今天是星期几 -
计算出平均数取整_季度计算就是拽,学会年薪加一百
2021-01-13 10:55:36小伙伴们好啊,咱们知道,Excel中的日期计算函数非常丰富,有用于计算年份的YEAR函数,有计算月份的MONTH函数,有计算星期的WEEKDAY函数等等。但是Excel没有给我们提供一个现成的计算季度的函数,如果我们要根据日期... -
根据日期计算出周几_教师如何使用Excel计算某个日期是星期几-Leo老师
2021-01-13 09:08:421、计算某个日期是星期几 如下图,是宅男心中的大事记,要计算发生日期是周几,公式为: =WEEKDAY(B2.2) WEEKDAY函数第二参数使用2.用数字1到7表示周一到周日。这个函数在数组计算中经常用于按周统计数据。 如果... -
js,ts农历计算
2020-09-21 08:43:47vue项目使用js计算农历 新建js文件 const calendar = { gregorianYear: null, //公历年 gregorianMonth: null, //公历月 gregorianDay: null, //公历日 weekday: null, //星期 hours: null, minutes: null, ... -
python计算周几
2019-08-07 11:32:11def dayofweek(year,month,day): import datetime days = ['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday'] date = days[datetime.date(year,month,day).weekday()] ... -
SharePoint 2010 栏计算经验收集
2019-11-05 20:32:091,根据创建时间(日期),计算计算时间所在周的周一的日期: =日期-(WEEKDAY(日期))+2 示例:假如日期是:2011/10/28 14:00 上述公司的结果是:2011/10/24 。注意... -
sql 计算星期几
2010-12-09 17:49:00select datename(weekday,你所要计算的时间) 输出的格式为:星期几 DATENAME(param,date); param是指定要返回日期部分的参数,包括下面几种: year yy, yyyy quarter qq, q month mm, m dayofyear dy, y day dd, d ... -
基姆拉尔森时间计算公式
2020-04-24 11:26:51基姆拉尔森时间计算公式 W= (d+2m+3(m+1)/5+y+y/4-y/100+y/400+1)%7 //C++计算公式 #include <stdio.h> void main() ... char weekday[7]={“Sunday”,“Monday”,“Tuesday”,“Wednesday”,“Thu... -
使用Excel小技巧计算日期(蓝桥杯)
2019-03-23 21:33:25使用Excel小技巧计算日期(蓝桥杯) 文章目录使用Excel小技巧计算日期(蓝桥杯)日期转星期 日期转星期 在Excel中,1990年1月1日默认为周日。 Excel日期转星期可以使用WEEKDAY或者TEXT函数实现。 下面是Excel日期转星期... -
计算星期几
2019-02-18 16:06:08已知1年1月1号是星期一 ①暴力求解: ...string weekday[7] = {"Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", &q -
根据日期计算星期几
2012-05-10 16:10:00// 根据日期计算星期几 static int CaculateWeekDay(int year, int month, int day) { int weekday; // 一月和二月被当作前一年的 if ((month == 1) || (month == 2)) { month += 12; year--; ... -
计算今天星期几
2014-07-09 13:30:22set language N'Simplified Chinese' select datename(weekday, getdate()) -
星期和工作日计算,你会了吗?
2019-01-31 03:59:151、计算某个日期是星期几如下图,是宅男心中的大事记,要计算发生日期是周几,公式为:=WEEKDAY(B2,2) WEEKDAY函数第二参数使用2,用数字1到7表示周一到周日。这个函数在数组计算中经常用于按周统计数据。如果要显示... -
MYSQL周计算公式
2020-07-30 10:26:30select WEEKDAY('2020-07-27'),WEEK('2020-07-27'), DATE_FORMAT('2020-07-27','%Y-%u'),DATE_FORMAT('2020-07-27','%Y-%U'), WEEKOFYEAR('2020-07-27')
-
网际互联及OSI七层模型:
-
java 嵌套对象序列化_详解Java序列化机制
-
【Python-随到随学】 FLask第一周
-
ELF视频教程
-
Galera 高可用 MySQL 集群(PXC v5.6 + Ngin
-
Liunx 优化思路与实操步骤
-
matlab制作的俄罗斯方块
-
access应用的3个开发实例
-
Codeforces Global Round 8 ABC
-
Java验证码—ValidateCode.jar下载
-
java 嵌套listview_ListView嵌套GridView使用详解
-
深究字符编码的奥秘,与乱码说再见
-
朱老师C++课程第3部分-3.6智能指针与STL查漏补缺
-
多线程知识点总结
-
IEC 60335-2-17:2019 毯子、垫子、衣服和类似的柔性加热器具的安全要求 -最新完整英文版(253页)
-
wgcloud-v3.3.0运维监控系统(windows版本)
-
数据库MySQL上机实验报告.docx
-
团体程序设计天梯赛-练习集 L1-046 整除光棍 (20 分)
-
Mysql数据库面试直通车
-
文本编辑器C++代码