计算某一天属于一年中的第几周
来源:互联网 发布:胡雪岩 知乎 编辑:程序博客网 时间:2024/05/21 08:49
详细介绍见 Calculating the ISO week number. Jan Stout. http://www.proesite.com/timex/wkcalc.htm
Simple week number的定义如下:
1. 第一周开始于该年的一月一号
2. 第n+1周开始于第n周后的7天
SWN( y, m, d ) = 1 + ( DP( y, m ) + d-1 ) / 7
where DP ("Days Passed") is given by:
- DP( y, 1 ) = 0
DP( y, m+1 ) = DP( y, m ) + ML( y, m )
and ML ("Month Length") is defined as:
ML( y, 1 ) = 31
ML( y, 2 ) = 28 + LEAP( y )
ML( y, 3 ) = 31
ML( y, 4 ) = 30
ML( y, 5 ) = 31
ML( y, 6 ) = 30
ML( y, 7 ) = 31
ML( y, 8 ) = 31
ML( y, 9 ) = 30
ML( y, 10 ) = 31
ML( y, 11 ) = 30
ML( y, 12 ) = 31
and LEAP( y ) is defined as:
- LEAP( y ) = ( y % 4 == 0 ) && ( ( y % 100 != 0 ) || ( y % 400 == 0 ) )
ISO week number[ISO8601]的定义如下:
1. 每周从星期一开始
2.一年的第一周是该calendar年中第一个包含星期四的星期,也就是说至少包含4天的第一个周。比如说2004年1月1号是星期四,则2004的第一周开始于2003.12.29.
ISO_WN( y, m, d )
{
dow = DOW( y, m, d ); // Day of the week
dow0101 = DOW( y, 1, 1 );
if ( m == 1 && 3 < dow0101 < 7 - (d-1) )
{
// days before week 1 of the current year have the same week number as
// the last day of the last week of the previous year
dow = dow0101 - 1;
dow0101 = DOW( y-1, 1, 1 );
m = 12;
d = 31;
}
else if ( m == 12 && 30 - (d-1) < DOW( y+1, 1, 1 ) < 4 )
{
// days after the last week of the current year have the same week number as
// the first day of the next year, (i.e. 1)
return 1;
}
return ( DOW( y, 1, 1 ) < 4 ) + 4 * (m-1) + ( 2 * (m-1) + (d-1) + dow0101 - dow + 6 ) * 36 / 256;
}
- 计算某一天属于一年中的第几周
- [Asp.net] 计算某一天是一年中的第几周
- 日期属于一年中的第几周
- java里面如何知道某一天是一年中的第几周?
- 计算某一天是当月第几周
- 计算某天是一年中的某一天
- .Net时间计算函数,统计某一天是一年的第几周,这一周从哪天开始到哪天结束
- .Net时间计算函数,统计某一天是一年的第几周,这一周从哪天开始到哪天结束
- 计算当前周是一年中的第几周的函数
- C#计算当前日期是一年中的第几周
- 一年中的第几周和星期计算日期的js
- JS计算当前日期是一年中的第几周
- 怎样查询今天是属于一年中的第几周?ww和iw 的周别问题。
- 计算某一天是一年中的第几天
- 计算本周是一年中第几周
- 计算某一天是这一年中的第几天
- 由日期得到一年中的第几周
- C#中怎么计算当前日期是在一年中的第几周
- 【iOS-Cocos2d游戏开发之五】多触点与触屏事件详解(单一监听、事件分发)【11月28日更新】
- Js_其他数据类型
- [转]sqlite数据库 批量导入
- mysql命令行模式下执行shell命令
- kaptcha 验证码组件使用简介
- 计算某一天属于一年中的第几周
- 【iOS-Cocos2d游戏开发之六】对触屏事件追加讲解,解决无法触发ccTouchMoved事件[重要!]
- (转)深入浅出 iOS 之多线程 NSThread 罗朝辉(http://blog.csdn.net/kesalin)
- flex操作外部xml文件
- 【iOS-Cocos2d游戏开发之七】在cocos2d中添加/删除系统组件,并解决View设置透明会影响View中的其他组件的问题!【11月28日更新解决添加组件Cocos2d动画停止播放的BUG】
- 【iOS-Cocos2d游戏开发之八】开启高清(960*640)模式问题与解答、图片适配以及设置iphone横竖屏
- Android应用的自动升级、更新模块的实现
- GTK 背景透明button (GtkImage + EventBox)
- ubuntu 下编译安装php