C程序设计 8.18 给出年、月、日,计算该日是该年的第几天。

相关知识点:

判断闰年一般的规律为: 四年一闰,百年不闰,四百年再闰.

其简单计算方法:

1.能被4整除而不能被100整除.(如2004年就是闰年,1800年不是.)

2.能被400整除.(如2000年是闰年)

另外,

2月:平年有28天,闰年有29天。

#include <stdio.h>

//leap==1是闰年,leap==0平年
int year,month,day,leap,num;
int main(){
    int leaper(int year);
    int summer();
    printf("input year, month, day:\n");
    scanf("%d%d%d", &year, &month, &day);
    leaper(year);
    num=summer();
    printf("该日期是该年的第%d天.\n",num);
    //printf("%d\n",leap);
    return 0;
}

//判断是否是闰年
int leaper(int year){
    if((year%4)==0 && (year%100)!=0)
        leap=1;
        else if(year%400 == 0) leap=1;
                else leap=0;
    return leap;
}

//计算该天是这年的第几天
int summer(){
    int sum=0,i;
    //平年每月的天数
    int mount[12]={31,28,31,30,31,30,31,31,30,31,30,31};

        for(i=0; i<month-1; i++){
            sum +=mount[i];
            }

    //闰年,并且月份大于2,总天数加1
    if(leap && month>=3) sum++;

    sum=sum+day;
    return sum;
}

结果:

时间: 2024-07-28 15:17:50

C程序设计 8.18 给出年、月、日,计算该日是该年的第几天。的相关文章

用户输入年,月,日,计算该日是该年的第几天?需要考虑2月份的问题

1 class Program 2 { 3 static void Main(string[] args) 4 { 5 //用户输入年,月,日,计算该日是该年的第几天?需要考虑2月份的问题 6 int year = 2015; 7 int month = 5; 8 int day = 8; 9 10 //计算是哪年 哪月 哪日 11 //1,3,5,7,8,10,12是31 12 //闰年29天,平年28天 13 //4,6,9,11是30天 14 //占时认为2月份是28天 15 16 //储

基于jqeury/zepto的年/月/日 时:分:秒 时间快捷控件(支持键盘操作)

最近在项目中屡次遇到时分秒格式的时间输入需求, 还老被吐槽说这个时间输入贼蛋疼,一不小心就输错,而且花费的时间不少.为了堵住悠悠用户之口,也为了今后有需求能直接拿来使用~~so整了这个简易的小控件.支持根据默认时间格式自动生成对应格式控件,支持键盘上下按键调整时间(长按连续调整), 支持键盘左右按键切换时间输入位置,当然...时间控件的位置完全可以自行定义 HTML和CSS狠简单: <style> form, p, span, div, ul, li, input, dl, dt, dd, h

Android DataPickerDialog组建只显示年月或月日

最近几天再做一个App开发,开发时需要使用DatePickerDialog来只显示年月,在网上参考了不少的例子,有的自己琢磨不透,所幸看到了(这里请参考http://whb198900.blog.163.com/blog/static/766453542012108111920879)这位朋友的文章以及http://download.csdn.net/detail/u010372772/6027761这里边的代码,自己又进行了总结,总之,完成了自己的任务. 1 public class Seco

js实现二级月日联动菜单

直接上代码 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>JS实现二级月日联动菜单</title> </head> <body> <form name="form1" method="post" action=""

正则表达式匹配IP和月日

匹配IP地址: egrep "^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" file 思路: 250-255  200-249  1-199 月日匹配: egrep ([1-9]|1[0-2])([1-9]|[1-

DatePicker隐藏年/月/日

有时候项目中进行时间设置时,只需要设置年/或月/或日.这时候就需要对相应的部分进行隐藏. 1 DatePicker datePk = (DatePicker) findViewById(R.id.dp_date); 2 // 获取到年/月/日所在的组件群 3 ViewGroup targetGroup = (ViewGroup) ((ViewGroup) datePk.getChildAt(0)).getChildAt(0); 4 //接下来即可根据位置来隐藏年/月/日,如 5 targetGr

【原创】Js:日期处理(日期格式必须【yyyy-mm-dd】才能转成long的毫秒!其他的不是【年-月-日】的格式,结果会是【NaN】)

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>test date</title> </head> <body> <script type="text/javascript"> document.write("三种获取时间戳的方式:"); document.write(

MySql按周/月/日分组统计数据的方法

知识关键词:DATE_FORMAT select DATE_FORMAT(create_time,'%Y%u') weeks,count(caseid) count from tc_case group by weeks; select DATE_FORMAT(create_time,'%Y%m%d') days,count(caseid) count from tc_case group by days; select DATE_FORMAT(create_time,'%Y%m') month

Win10显示时间月日、星期

WIN10默认和其他系统一样只显示时间,虽然用其他方法看到月日和星期,但不如直接显示直观. 在桌面-开始--排序中找到S开头里的Setting(设置) 点击"Personalization" 点击"Taskbar"(任务栏)--将"Use small taskbar buttons"(使用小的任务栏)开关关闭,小任务栏不管怎么设置都不会显示的,因为显示空间太小. 开始-控制面板 change date,time or number formats