0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

カレンダー一覧表示

Posted at

仕様と完成イメージ

![calender.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/372857/613194b4-c013-22e9-506d-af21bc6a2b59.png)

画像のように更新日以降のみがカレンダーの一覧票として表示されます。また,土曜日と日曜日は色が変わります。

先月または来月のボタンを押すことで表示される月が変更されます。更新日より前の月は何も表示されなくなります。

HTML

```html:main.html

カレンダー

先月
年 月
来月
```

CSS

```CSS:sample.css h4 { margin: 0; text-align: center; } dl { width: auto; height: auto; margin: 0; padding: 2px; background-color: white; border: 2px solid rgb(19, 141, 211); } dt { float:bottom; width: 100%; margin-top: 2px; background-color: rgb(223, 223, 223); } .innerDate { width: auto; margin-top: 0px; margin-right: 5%; margin-bottom: 0%; margin-left: 5%; text-align: center; } .beforemonth { width: 60px; height: auto; } .sectionDate { margin: 0, 10%, 0, 10%; width: 60%; height: auto; margin-left: 5%; margin-right: 5%; display: inline-block; display: inline; text-align: center; } .nextmonth { width: 60px; height: auto; } ```

JavaScript

```js:script.js var today=new Date(); var mon = today.getMonth()+1; var year= today.getFullYear(); var stateMonth;//現在表示されている月 var stateYear;//現在表示されている年 var setday = new Date(stateYear, stateMonth, 0);

/今日の日付を表示/
function printDate(){
document.getElementById("month").innerHTML=mon;
stateMonth = mon;
document.getElementById("year").innerHTML=year;
stateYear = year;
}

/来月ボタンの定義/
function nextmonth(){
var nextMonth = stateMonth % 12 + 1;
if(nextMonth == 1){
var nextYear = stateYear + 1;
document.getElementById("year").innerHTML = nextYear;
stateYear = nextYear;
document.getElementById("month").innerHTML = nextMonth;
stateMonth = nextMonth;
}else{
document.getElementById("month").innerHTML = nextMonth;
stateMonth = nextMonth;
}

for(i = 0; i <= 30; i++){
    printDatenew(i);
}

}

/先月ボタンの定義/
function beforemonth(){
var beforeMonth = stateMonth % 12 - 1;
if(beforeMonth <= 0){
beforeMonth = beforeMonth + 12;
}
if(beforeMonth == 12){
var beforeYear = stateYear - 1;
document.getElementById("year").innerHTML = beforeYear;
stateYear = beforeYear;
}
document.getElementById("month").innerHTML = beforeMonth;
stateMonth = beforeMonth;

    for(i = 0; i <= 30; i++){
        printDatenew(i);
    }

}
/有効な日付と曜日を返す/
function getDate(i) {
var er3 = 999;
var lastday1 = new Date(today.getFullYear(), today.getMonth()+1, 0);
var lastday2 = new Date(stateYear, stateMonth, 0);
var day1 = new Date(today.getFullYear(), today.getMonth(), today.getDate()+i);
var day2 = new Date(stateYear, stateMonth-1, i+1);
var you1 = day1.getDay();
var you2 = day2.getDay();
var s = day1.getDate()
var d = day2.getDate()

if(stateYear < year){
    return [er3, 0];
}else if(stateYear == year){
    if(stateMonth < mon){
        return [er3, 0];
    }else if(stateMonth == mon){
        if(day1 > lastday1){
            return [er3, 0];
        }else{
        
        return [s, you1];
        }
    }else{
        if(day2 > lastday2){
            return [er3, 0];
        }else{
        return [d, you2];
        }
    } 
}else{
    if(day2 > lastday2){
        return [er3, 0];
    }else{
        return [d, you2];
    }
}

}
/日付を表示する/
function printDatenew(i) {
var youbi = new Array("日","月","火","水","木","金","土");
var idlist = new Array("date0", "date1", "date2", "date3", "date4", "date5", "date6", "date7", "date8", "date9", "date10", "date11", "date12", "date13", "date14", "date15", "date16", "date17", "date18", "date19", "date20", "date21", "date22", "date23", "date24", "date25", "date26", "date27", "date28", "date29", "date30");
var [date, you] = getDate(i);
const dateset = document.getElementById(idlist[i]);
if(date == 999){
dateset.style.display = "none";
}else{
if(you == 0){
dateset.style.backgroundColor = 'rgb(255, 163, 163)';
dateset.innerHTML = date+"日("+youbi[you]+")";
dateset.style.display = "";
}else if(you == 6){
dateset.style.backgroundColor = 'rgb(163, 221, 255)';
dateset.innerHTML = date+"日("+youbi[you]+")";
dateset.style.display = "";
}else{
dateset.innerHTML = date+"日("+youbi[you]+")";
dateset.style.backgroundColor = 'rgb(223, 223, 223)';
dateset.style.display = "";
}
}
}

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?