谁帮我写个小循环呀!!

fdgkhj436 2011-10-10 02:18:43
下面写的感觉不会写了,谁能帮我改下。
就是一下显示出全年的日期,由于每月日期不一样写起来头都大了。。。
2月最大为29就行了。。
其他1月31 3月31 4月30 5月31 6月30 7月31..................



for(i=1;i<366;i++){
if(i<32)t="1";
if(i>31&&$i<58)t="2";
if(i>62&&$i<95)t="3";
if(i>95&&$i<126)t="4";
documen.write(t+"月"+(i%29)."日"."<br>");
}
...全文
176 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
fdgkhj436 2011-10-10
  • 打赏
  • 举报
回复
[Quote=引用 19 楼 axiheyhey 的回复:]
引用 16 楼 fdgkhj436 的回复:在帮我把12楼2月改成29天行不?
只有12楼达到我的需求...
12楼和13楼效果一样的。。你要把2月改成29天,就把12楼的从第2个if开始判断边界都+1就行了。。我建议你用13楼的,把数组里的28改成29就行了
[/Quote]
蛋疼,12的循环改起来真费尽,用12了,只用在本端无所谓效率高低。
峭沙 2011-10-10
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 fdgkhj436 的回复:]在帮我把12楼2月改成29天行不?
只有12楼达到我的需求...
[/Quote]12楼和13楼效果一样的。。你要把2月改成29天,就把12楼的从第2个if开始判断边界都+1就行了。。我建议你用13楼的,把数组里的28改成29就行了
fdgkhj436 2011-10-10
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 yhtapmys 的回复:]
引用 6 楼 fdgkhj436 的回复:
引用 4 楼 cj205 的回复:
麻烦你运行下看看~~~!

我就想在我写的原代码上做修改.
我在意的是我写的为什么实现不了-_-!



JScript code

for(i=1;i<366;i++){//var i
if(i<32)t="1";//var t
if(i>31&&$i<58)t="2";//……
[/Quote]
其次这代码我要转php的,所以呢。。。。
fdgkhj436 2011-10-10
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 yhtapmys 的回复:]
引用 6 楼 fdgkhj436 的回复:
引用 4 楼 cj205 的回复:
麻烦你运行下看看~~~!

我就想在我写的原代码上做修改.
我在意的是我写的为什么实现不了-_-!



JScript code

for(i=1;i<366;i++){//var i
if(i<32)t="1";//var t
if(i>31&&$i<58)t="2";//……
[/Quote]
首先我需要366的循环取出对应的字符串,,,
所以只好这么傻瓜,有些好看却达不到需求地,,
fdgkhj436 2011-10-10
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 axiheyhey 的回复:]
引用 14 楼 yhtapmys 的回复:

引用 6 楼 fdgkhj436 的回复:
引用 4 楼 cj205 的回复:
麻烦你运行下看看~~~!

我就想在我写的原代码上做修改.
我在意的是我写的为什么实现不了-_-!


JScript code

for(i=1;i<366;i++){//var i
if(i<32)t="1";//var t
if(i>31&……
[/Quote]
在帮我把12楼2月改成29天行不?
只有12楼达到我的需求...
峭沙 2011-10-10
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 yhtapmys 的回复:]

引用 6 楼 fdgkhj436 的回复:
引用 4 楼 cj205 的回复:
麻烦你运行下看看~~~!

我就想在我写的原代码上做修改.
我在意的是我写的为什么实现不了-_-!


JScript code

for(i=1;i<366;i++){//var i
if(i<32)t="1";//var t
if(i>31&&$i<58)t="2";//手误 $……
[/Quote]楼上有点问题哦,不是所有奇数月都是31天。。
yhtapmys 2011-10-10
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 fdgkhj436 的回复:]
引用 4 楼 cj205 的回复:
麻烦你运行下看看~~~!

我就想在我写的原代码上做修改.
我在意的是我写的为什么实现不了-_-!
[/Quote]


for(i=1;i<366;i++){//var i
if(i<32)t="1";//var t
if(i>31&&$i<58)t="2";//手误 $i ?
if(i>62&&$i<95)t="3";//i等于58,59,60,61,62的时候?
if(i>95&&$i<126)t="4";//...
//慢慢算 5,6,7,8,9,10,11,12
documen.write(t+"月"+(i%29)."日"."<br>");//documen=>document, "."=>"+"
}



抛开粗心的错误不讲,
你不觉得你的这个方法很费事么?还要事先算好月数对应天数什么的。
CJ205以及楼上几位的都不错的,可以参考下,有时适当换个思维,海阔天空。

若要应着你的思路,你虽说2月是29天...也还得偷下懒,给个双循环,FF3/IE8 下通过。
纰漏之处请大家指正。

var tday;
for (var i = 1; i <= 12; i++) {
if (i% 2 == 0) {
if (i== 2) {
tday = 29;
}
else {
tday = 30;
}
}
else {
tday = 31;
}
for (var j = 1; j <= tday; j++) {
document.write(i + "月" + j + "日" + "<br>");
}
}
峭沙 2011-10-10
  • 打赏
  • 举报
回复
稍微不那么傻的方法。。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>

</head>
<body>
<script type="text/javascript">
var m = 1; //月份
var d = 1; //日期
var array = [31,28,31,30,31,30,31,31,30,31,30,31];
var minDay = 0;
for(var i = 1;i <= 365; i++){
printDate();
}
function printDate(){
var maxDay = minDay + array[m-1];
if(i > minDay && i<= maxDay){
d = i - minDay;
document.write(m+"月"+d+"日<br>");
}else if(i > maxDay){
minDay = maxDay;
m++;
printDate();
}
}
</script>
</body>
</html>
峭沙 2011-10-10
  • 打赏
  • 举报
回复
这是按照你的要求最傻瓜的写法。。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>

</head>
<body>
<script type="text/javascript">
var m; //月份
var d; //日期
for(i=1;i<366;i++){
if(i<=31){
m = 1;
d = i;
}else if(i>31&&i<=59){
m = 2;
d = i - 31;
}else if(i>59&&i<=90){
m = 3;
d = i - 59;
}else if(i>90&&i<=120){
m = 4;
d = i - 90;
}else if(i>120&&i<=151){
m = 5;
d = i - 120;
}else if(i>151&&i<=181){
m = 6;
d = i - 151;
}else if(i>181&&i<=212){
m = 7;
d = i - 181;
}else if(i>212&&i<=243){
m = 8;
d = i - 212;
}else if(i>243&&i<=273){
m = 9;
d = i - 243;
}else if(i>273&&i<=304){
m = 10;
d = i - 273;
}else if(i>304&&i<=334){
m = 11;
d = i - 304;
}else if(i>334&&i<=365){
m = 5;
d = i - 334;
}
document.write(m+"月"+d+"日<br>");
}
</script>
</body>
</html>
十一文 2011-10-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cj205 的回复:]

JScript code
Date.prototype.toFormatString = function(format) {
var weeks = {};
weeks['cn'] = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
weeks['en'] = ['Sun……
[/Quote]

学习哈 这个代码 呵呵
峭沙 2011-10-10
  • 打赏
  • 举报
回复
语法都没写对,运行都不过。。按照你的算法改了下,能执行,但效果不对

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
</head>
<body>
<script type="text/javascript">
for(i=1;i<366;i++){
if(i<32)t="1";
if(i>31&&i<58)t="2";
if(i>62&&i<95)t="3";
if(i>95&&i<126)t="4";
document.write(t+"月"+(i%29)+".日.<br>");
}
</script>
</body>
</html>
zg_heng 2011-10-10
  • 打赏
  • 举报
回复
<script type="text/javascript">
function show() {
var year = 2012;
var month;
for (month = 1; month <= 12; month++)
{
switch (month) {
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
for (var j = 1; j <= 31; j++) {
document.write(month + "月" + j + "日" + "</br>");
}
break;
case 4:
case 6:
case 9:
case 11:
for (var j = 1; j <= 30; j++) {
document.write(month + "月" + j + "日" + "</br>");
}
break;
case 2:
if (year % 100 != 0 && year % 4 == 0 || year % 100 == 0 && year % 400 == 0) {
for (var j = 1; j <= 28; j++) {
document.write(month + "月" + j + "日" + "</br>");
}
}
else {
for (var j = 1; j <= 29; j++) {
document.write(month + "月" + j + "日") + '<br />';
}
}
break;
}
}
}
</script>








刚调试过的。ok了的。符合你的心意,具体那个年份你自己填写或添加
一個程序員 2011-10-10
  • 打赏
  • 举报
回复
估摸着楼主是在做家庭作业。
2011-10-10
  • 打赏
  • 举报
回复

var date = new Date(new Date().getFullYear(), 0, 1), d = 1000 * 60 * 60 * 24;
for(i=1;i<366;i++){
c = new Date(date.getTime() + (i-1) * d);
document.write((c.getMonth()+1)+"月"+c.getDate()+"日<br>");
}
fdgkhj436 2011-10-10
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 cj205 的回复:]
麻烦你运行下看看~~~!
[/Quote]
我就想在我写的原代码上做修改.
我在意的是我写的为什么实现不了-_-!
yhtapmys 2011-10-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cj205 的回复:]
JScript code

Date.prototype.toFormatString = function(format) {
var weeks = {};
weeks['cn'] = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
weeks['en'] = [……
[/Quote]

UP 这个中
Mr-Jee 2011-10-10
  • 打赏
  • 举报
回复
麻烦你运行下看看~~~!
fdgkhj436 2011-10-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 cj205 的回复:]
JScript code
Date.prototype.toFormatString = function(format) {
var weeks = {};
weeks['cn'] = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
weeks['en'] = ['S……
[/Quote]
我要的结果是这种....:
1月1日
1月2日
1月3日
1月4日
1月5日
1月6日
1月7日
1月8日
1月9日
1月10日
1月11日
1月12日
1月13日
1月14日
1月15日
1月16日
1月17日
1月18日
1月19日
1月20日
1月21日
1月22日
1月23日
1月24日
1月25日
1月26日
1月27日
1月28日
1月29日
1月30日
1月31日
2月1日
2月2日
2月3日
2月4日
2月5日
2月6日
2月7日
2月8日
2月9日
2月10日
2月11日
2月12日
2月13日
2月14日
2月15日
2月16日
2月17日
2月18日
2月19日
2月20日
2月21日
2月22日
2月23日
2月24日
2月25日
Mr-Jee 2011-10-10
  • 打赏
  • 举报
回复
	Date.prototype.toFormatString = function(format) {  
var weeks = {};
weeks['cn'] = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
weeks['en'] = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
var self = this;
var fix = {
'yyyy' : self.getFullYear(),
'MM' : self.getMonth() + 1,
'dd' : self.getDate(),
'wk' : weeks['cn'][self.getDay()],
'hh' : self.getHours(),
'min' : self.getMinutes(),
'ss' : self.getSeconds()
};
return format.replace(/[a-zA-Z]+/g, function(m) {
return fix[m];
});
};
var i = new Date(2011,0,1);
while(i.getFullYear()==2011) {
document.write(i.toFormatString('MM月dd日') + '<br />');
i.setDate(i.getDate()+1);
}
明悟 2011-10-10
  • 打赏
  • 举报
回复
不懂楼主啥意思
js里不是有日期函数吗?

87,989

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧