日历算法Android
2015-09-09 14:58
435 查看
function isLeapYear (year) {
return year % 4 == 0 && year % 100 != 0 || year % 400 ==
0;
}
function getDaysByYearAndMonth (year, month) {
var days;
switch (month) {
case 2:
days = isLeapYear (year) ? 29 : 28;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
days = 31;
break;
}
return days;
}
function getYearDifference (date) {
var year = date.getFullYear ();
return year - beginYear;
}
function getMonthDifference (date) {
var month = date.getMonth () + 1;
return month - 1;
}
function getDayDifference (date) {
var day = date.getDate ();
return day;
}
function getDayDistance (date) {
var yearDifference = getYearDifference (date),
monthDifference = getMonthDifference (date),
dayDifference = getDayDifference (date), dayDistance
= 0, month, year;
switch (yearDifference) {
case 0:
switch (monthDifference) {
case 0:
dayDistance = dayDifference;
break;
default:
for (month = 1; month <= date.getMonth
(); month ++) {
dayDistance += getDaysByYearAndMonth
(date.getFullYear (), month);
}
dayDistance += dayDifference;
break;
}
break;
default:
for (year = beginYear; year < date.getFullYear
(); year ++) {
dayDistance += isLeapYear (year) ? 366 : 365;
}
for (month = 1; month <= date.getMonth ();
month ++) {
dayDistance += getDaysByYearAndMonth
(date.getFullYear (), month);
}
dayDistance += dayDifference;
break;
}
return dayDistance;
}
function getInitialWeekdayByDay (date) {
var dayDistance = getDayDistance (date), weekday =
dayDistance - date.getDate () + premierWeekday;
return weekday % 7;
}
return year % 4 == 0 && year % 100 != 0 || year % 400 ==
0;
}
function getDaysByYearAndMonth (year, month) {
var days;
switch (month) {
case 2:
days = isLeapYear (year) ? 29 : 28;
break;
case 4:
case 6:
case 9:
case 11:
days = 30;
break;
default:
days = 31;
break;
}
return days;
}
function getYearDifference (date) {
var year = date.getFullYear ();
return year - beginYear;
}
function getMonthDifference (date) {
var month = date.getMonth () + 1;
return month - 1;
}
function getDayDifference (date) {
var day = date.getDate ();
return day;
}
function getDayDistance (date) {
var yearDifference = getYearDifference (date),
monthDifference = getMonthDifference (date),
dayDifference = getDayDifference (date), dayDistance
= 0, month, year;
switch (yearDifference) {
case 0:
switch (monthDifference) {
case 0:
dayDistance = dayDifference;
break;
default:
for (month = 1; month <= date.getMonth
(); month ++) {
dayDistance += getDaysByYearAndMonth
(date.getFullYear (), month);
}
dayDistance += dayDifference;
break;
}
break;
default:
for (year = beginYear; year < date.getFullYear
(); year ++) {
dayDistance += isLeapYear (year) ? 366 : 365;
}
for (month = 1; month <= date.getMonth ();
month ++) {
dayDistance += getDaysByYearAndMonth
(date.getFullYear (), month);
}
dayDistance += dayDifference;
break;
}
return dayDistance;
}
function getInitialWeekdayByDay (date) {
var dayDistance = getDayDistance (date), weekday =
dayDistance - date.getDate () + premierWeekday;
return weekday % 7;
}
![](http://static.blog.csdn.net/xheditor/xheditor_emot/default/struggle.gif)
相关文章推荐
- Android学习——五种布局方式
- Android免Root无侵入AOP框架Dexposed
- android 权限大全
- Android免Root无侵入AOP框架Dexposed
- Mac 下安装使用Android Studio
- 【整理】Android中的USB中的UsbAccessory和UsbDevice的区别
- Android之自定义ContentProvider详解
- [Android Studio 权威教程]配置出“NB”的Android Studio
- Android 技术总结(004)—— ScrollView中的组件设置android:layout_height="fill_parent"不起作用的解决办法
- Android的onLayout、layout方法讲解
- android坐标
- Android第四十七期 - WheelView沉浸式菜单栏
- Android第四十七期 - WheelView沉浸式菜单栏
- Qt for android 界面适应
- 修改nexus 7的boot.img,打开系统调试
- Caused by: android.os.NetworkOnMainThreadException错误解决办法
- Android依赖注入应用
- Android应用程序用户界面(九)- 按钮
- android 群组头像的显示(仿QQ群组)
- Android获取当前连接wifi的信道