zoukankan      html  css  js  c++  java
  • 计算输入的日期为星期几【原创小程序】

    计算输入的日期为星期几【原创小程序】
    2007/08/25 22:56
    /*
    程序功能:计算输入的日期为星期几
    作者:HungryAnt
    日期:2007.08.25 晚
    */


    /*查询 1970年1月1日 是星期几
    查询方式
    #include<time.h>
    #include<stdio.h>
    int main(){
        struct tm t;
        time_t h_t=0;

        printf(ctime(&h_t));
        getch();
    }
    得到结果 星期4
    */

    #include<stdio.h>

    int RunNian(int y){
        if((y%100!=0 && y%4==0) || y%400==0)
            return 1;
        else return 0;
    }

    int main(){
        int iy,im,id;
        int y,m,d,dsum=0,rn,day;
        char *dd;

        printf("请输入日期/n年 月 日/(请以空格键间隔!!!/):/n");
        scanf("%d%d%d",&iy,&im,&id);

        if(iy>1970 || (iy==1970 && (im>1 || (im==1 && id>1)))){/*1970年1月1日 之后*/
            for(y=1970;y<iy;y++){
                rn=RunNian(y);
                dsum+=365+rn;
            }
            for(m=1;m<im;m++){
                switch(m){
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:dsum+=31;break;
                case 2:dsum+=28+rn;break;
                case 4:
                case 6:
                case 9:
                case 11:dsum+=30;break;
                }
            }
            dsum+=id-1;
            day=(4+dsum)%7;/*1970年1月1日 星期4*/
        }
        else if(iy==1970 && im==1 &&id==1)day=4;/*1970年1月1日*/
        else{/*1970年1月1日 之前*/
            for(y=iy+1;y<1970;y++){
                rn=RunNian(y);
                dsum+=365+rn;
            }
            for(m=im;m<=12;m++){
                switch(m){
                case 1:
                case 3:
                case 5:
                case 7:
                case 8:
                case 10:
                case 12:dsum+=31;break;
                case 2:dsum+=28+rn;break;
                case 4:
                case 6:
                case 9:
                case 11:dsum+=30;break;
                }
            }
            dsum-=id-1;
            day=4-(dsum)%7;
            if(day<0)day+=7;
        }
       
        switch(day){
        case 0:dd="日";break;
        case 1:dd="一";break;
        case 2:dd="二";break;
        case 3:dd="三";break;
        case 4:dd="四";break;
        case 5:dd="五";break;
        case 6:dd="六";break;
        }
       
        printf("%d年/%d月/%d日 是 星期%s",iy,im,id,dd);               
        getch();
    }
     
    本站内容均为原创,转载请注明出处
    作者:Gods_巨蚁 QQ:517377100
    出处:http://www.cnblogs.com/gods/
    多编码 多总结 厚积薄发
    Github博客 hungryant.github.io
  • 相关阅读:
    全排列和全组合实现
    (原)关于MEPG-2中的TS流数据格式学习
    linux的PAM认证和shadow文件中密码的加密方式
    vim 撤销 回退操作
    memcached解压报错gzip: stdin: not in gzip format tar: Child returned status 1 tar: Error is not recoverable: exiting now的解决方法
    Linux系统安全之pam后门安装使用详解
    漏洞预警:Linux内核9年高龄的“脏牛”0day漏洞
    linux软链接的创建、删除和更新
    关于“.bash_profile”和“.bashrc”区别的总结
    linux下批量杀死进程
  • 原文地址:https://www.cnblogs.com/gods/p/3887671.html
Copyright © 2011-2022 走看看