回 帖 发 新 帖 刷新版面

主题:难题,SOS


  各位高手,我有一个程序
  题目是:输入2个日期如:2004.2.15
                         2005.5.31
  怎样输出,从第一个日期到第二个日期的天数[em10]

回复列表 (共10个回复)

沙发

啊啊啊啊啊啊啊啊啊啊啊啊
是不是没人会??[em10][em10][em10][em10]

板凳

这题不难啊,自己动动脑筋吧

3 楼

DIM rq1 AS STRING
DIM rq2 AS STRING
DIM m(1 TO 12) AS INTEGER
INPUT "qi shi ri qi ", rq1
INPUT "jie shu ri qi ", rq2
n1 = VAL(MID$(rq1, 1, 4)): y1 = VAL(MID$(rq1, 6, 2)): r1 = VAL(MID$(rq1, 9, 2))
n2 = VAL(MID$(rq2, 1, 4)): y2 = VAL(MID$(rq2, 6, 2)): r2 = VAL(MID$(rq2, 9, 2))
FOR i = 1 TO 12
   READ m(i)
NEXT i
DATA 31,0,31,30,31,30,31,31,30,31,30,31
s = -1
FOR i = n1 TO n2
  IF i MOD 4 = 0 AND i MOD 100 <> 0 OR i MOD 400 = 0 THEN m(2) = 29 ELSE m(2) = 28
  IF i = n1 THEN a = y1 ELSE a = 1
  IF i = n2 THEN b = y2 ELSE b = 12
  FOR j = a TO b
    IF i = n1 AND j = y1 THEN c = r1 ELSE c = 1
    IF i = n2 AND j = y2 THEN d = r2 ELSE d = m(j)
    FOR k = c TO d
      s = s + 1
    NEXT k
  NEXT j
NEXT i
PRINT s
END


输入格式为先输入起始日期,如:2005/01/01,然后回车输入结束日期,如2005/01/01,年为4位,月和天都为两位,中间用符号隔开

4 楼

print Day2Number&("05-31-2005")-DayNumber&("02-15-2004")

[url=http://www.programfan.com/club/showbbs.asp?id=90247&page=2]详细程序请看“今天星期几”的第12楼程序[/url]

5 楼

谢谢各位专家!![em2]

6 楼

INPUT "a,b,c="; a, b, c
INPUT "x,y,z="; x, y, z
p = x - a - 1: n = 1: k = a + 1
IF p <> 0 THEN
WHILE n <= p
IF (k MOD 4 = 0 AND k MOD 100 <> 0) OR (k MOD 400 = 0) THEN
s = s + 366
ELSE
s = s + 365
END IF
n = n + 1: k = k + 1
WEND
END IF
IF b <= 2 THEN
IF (a MOD 4 = 0 AND a MOD 100 <> 0) OR (a MOD 400 = 0) THEN s = s + 1
END IF
FOR i = b TO 12
SELECT CASE i
CASE 1, 3, 5, 7, 8, 10, 12: s = s + 31
CASE 4, 6, 9, 11: s = s + 30
CASE ELSE: s = s + 28
END SELECT
NEXT i
s = s - c
IF y > 2 THEN
IF (x MOD 4 = 0 AND x MOD 100 <> 0) OR (a MOD 400 = 0) THEN s = s + 1
END IF
FOR i = 1 TO y - 1
SELECT CASE i
CASE 1, 3, 5, 7, 8, 10, 12: s = s + 31
CASE 4, 6, 9, 11: s = s + 30
CASE ELSE: s = s + 28
END SELECT
NEXT i
s = s + z
PRINT "s="; s
END

7 楼

建议:请在标题中具体、明确点明主题,最好不用“小菜问题”、“跪求”、“来看看呀”、“来帮帮忙呀”、“难题,SOS”之类的模糊空泛的标题。

8 楼

cls
rn1=1:rn2=1
input n1,y1,r1
input n2,y2,r2
for i = n1 to n2
    if i/4=int(i/4)and i/100<>int(i/100) then
       zt=zt+366:if i=n2 then zt=zt-366
    elseif i/400=int(i/400)and i/100=int(i/100) then
       zt=zt+366:if i=n2 then zt=zt-366
    else
       zt=zt+365:if i=n2 then zt=zt-365
       if i=n1 then
          rn1=0
       else
          if i=n2 then
             rn2=0
          end if
       end if
     end if
next i
for i=1 to y1-1
    if i=2 then if rn1=1 then zt=zt-29 else zt=zt-28
    if (i+t)/2<>int((i+t)/2) then zt=zt-31 else zt=zt-30
    if i=7 then t=1
next i
zt=zt-r1
t=0
for i= 1 to y2-1
    if i=2 then if rn2=1 then zt=zt+29 else zt=zt+28
    if (i+t)/2<>int((i+t)/2) then zt=zt+31 else zt=zt+30
    if i=7 then t=1
next i
zt=zt+r2
print "jie guo shi:";zt
end

自己编的,也不知道到底对不对?还请高手指点下!!!!!!!!!!!!


    [em18][em18][em18][em18][em18]

9 楼

那么,如果年份是123年或-123(公元前)年怎么办呢?
  我不知道能不能让程序一个一个的读日期中的字符,然后检测到了分隔符时
  就读取前面的数字,这样比楼上的完善多了。[em13]

10 楼

当然可以了,如果没有逗号的话,用val还很方便的呢

只是......公元前???????      狂汗.......

我来回复

您尚未登录,请登录后再回复。点此登录或注册