
int Ymd2Days(int year, int month, int date)
{
static int mdays[] = {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30 };
int i, days = date;
for (i=0; i<month; ++i) days += mdays[i];
if (month>2) { // 闰年的三-十二月份天数加1
if (((year%400)==0) || ((year&3)==0 && (year%100))) ++days;
}
return days;
}
int main()
{
int y,m,d;
printf("---输入年,月,日:");
while (scanf("%d,%d,%d", &y, &m, &d)==3) {
printf("答: %d年%d月%d日是第%d天\n\n---输入年,月,日:", y, m, d, Ymd2Days(y,m,d));
}
return 0;
}
年月日数字用逗号隔开 想结束的时候输入一个0就可以了 例如:
---输入年,月,日:2008,1,31
答: 2008年1月31日是第31天
---输入年,月,日:2008,6,16
答: 2008年6月16日是第168天
---输入年,月,日:0
在窗体上添加3个文本框,一个按钮:
测试通过,符合楼主要求:
已修改成不对即清除,你可以在试一下
Private Sub Command1_Click()
Dim y%, m%, d%, t%, i%
Dim mon(1 To 12) As Integer
y = Val(Text1Text)
m = Val(Text2Text)
d = Val(Text3Text)
For i = 1 To 12
Select Case i
Case 1, 3, 5, 7, 8, 10, 12
mon(i) = 31
Case 4, 6, 9, 11
mon(i) = 30
Case 2
mon(i) = 28
End Select
Next i
If y Mod 400 = 0 Or y Mod 100 > 0 And y Mod 4 = 0 Then mon(2) = 29
If y <= 0 Then
MsgBox "年份错误!"
Text1Text = ""
Text1SetFocus
Exit Sub
End If
If m < 1 Or m > 12 Then
MsgBox "月份错误!"
Text2Text = ""
Text2SetFocus
Exit Sub
End If
If d <= 0 Or d > mon(m) Then
MsgBox "日期错误!"
Text3Text = ""
Text3SetFocus
Exit Sub
End If
For i = 1 To m - 1
t = t + mon(i)
Next i
t = t + d
Cls
Print y; "年"; m; "月"; d; "日是第"; t; "天"
End Sub
以上就是关于编辑一个C语言程序:输入任意年月日,判断该天是这一年的第几天。全部的内容,包括:编辑一个C语言程序:输入任意年月日,判断该天是这一年的第几天。、设计一个应用程序,输入年、月、日,判断该日为这一年的第多少天 vb、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)