循环结构打印年月日? pdca循环案例日常生活
- 循环嵌套:输入年月日打印出该天是那年的第几天
- 、从键盘上输入年、月、 日,计算自当年元旦到这个日期一共有多少天并输出。用C语言循环结构
- Java输入月份 循环打印出该月的天数 比如1月1日,1月2日,1月3日......1月31日
- 使用shell语言循环打印出规定的时间
循环嵌套:输入年月日打印出该天是那年的第几天
// 输入年月日打印出该天是那年的第几天
#include <stdio.h>
int main(int argc, char *argv[])
{
// 年,月,日
unsigned int year,month,day;
// daysOfMonth[i] 表示第 i 个月的天数
unsigned int daysOfMonth[]={0,31,28,31,30,31,30,31,31,30,31,30,31};
// 指定年过去的天数
unsigned int passedDays;
// 标记输入的月份,天是否正确
unsigned int isMonthError,isDayError;
unsigned int m;
printf("输入年,月,日(输入格式:yyyy-mm-dd):");
// 按 ctrl+z 停止输入
while(scanf("%d-%d-%d",&year,&month,&day)!=EOF)
{
if(year%4==0&&year%100!=0 || year%400==0)
// 闰年的二月份天数
daysOfMonth[2]=29;
else
// 平年的二月份天数
daysOfMonth[2]=28;
isMonthError = isDayError = 0;
if(month == 0 || month >12)
{// 检查输入的月份
isMonthError = 1;
}
if(day == 0 || day > daysOfMonth[month])
{// 检查输入的天
isDayError = 1;
}
if(isMonthError || isDayError)
{// 输出出错
if(isMonthError && isDayError)
printf("输入的月份,天都不正确,请从新输入!\n\n");
else if(isMonthError)
printf("输入的月份不正确,请从新输入!\n\n");
else
printf("输入天不正确,请从新输入!\n\n");
}
else
{// 输入正确
passedDays = 0;
for(m=1;m<month;m++)
// 统计 1~(month-1) 月的总天数
passedDays += daysOfMonth[m];
// 加上最后一个月的天数
passedDays += day;
printf("%4d-%02d-%02d 是 %4d 年的第 %3d 天。\n\n",
year,month,day,year,passedDays);
}
printf("输入年,月,日(输入格式:yyyy-mm-dd):");
}
return 0;
}
/*
测试数据:
2012-14-2
2012-12-32
2012-0-100
2012-1-1
2012-2-29
2012-5-1
2012-12-31
*/
、从键盘上输入年、月、 日,计算自当年元旦到这个日期一共有多少天并输出。用C语言循环结构
#include "stdio.h"
#include "stdlib.h"
int main()
{
int year,month,day;
int isrunnian=0;//0不是闰年,1是闰年
scanf("%d,%d,%d",&year,&month,&day);//输入年月日
int days[2][12]={31,28,31,30,31,30,31,31,30,31,30,31,31,29,31,30,31,30,31,31,30,31,30,31};
//非闰年12个月份天数
//闰年12个月天数
if(year%4==0&&year%100!=0)
isrunnian=1;
else if(year%400==0)
isrunnian=1;
int sumdays=0;
for(int i=0;i<month-1;i++)
sumdays=sumdays+days[isrunnian][i];
sumdays=sumdays+day;
printf("%d\n",sumdays);
}
Java输入月份 循环打印出该月的天数 比如1月1日,1月2日,1月3日......1月31日
import java.util.Scanner;
public class P {
public static void main(String[] args) {
final int[] month={31,28,31,30,31,30,31,31,30,31,30,31};
int y,m,s;
Scanner sc=new Scanner(System.in);
System.out.print("请输入年、月(以空格分隔,如2016 8)");
y=sc.nextInt();
m=sc.nextInt();
s=month[m-1];
if(2==m && (0==y%400 || (0==y%4 && 0!=y%100)))
s+=1;
for(int i=1;i<s;i++)
System.out.print(""+m+"月"+i+"日,");
System.out.println(""+m+"月"+s+"日");
sc.close();
}
}
使用shell语言循环打印出规定的时间
#!/bin/bash
i=1
while [ $i -lt 25 ]
do
j=1
while [ $j -lt 61 ]
do
k=1
while [ $k -lt 31 ]
do
if [ $i -lt 10 ];then
ii=0$i
else
ii=$i
fi
if [ $j -lt 10 ];then
jj=0$j
else
jj=$j
fi
if [ $k -lt 10 ];then
kk=0$k
else
kk=$k
fi
echo 20150201${ii}${jj}${kk}
k=`expr $k + 1`
done
j=`expr $j + 1`
done
i=`expr $i + 1`
done