• 计算某天是星期几的java代码


    没有用网上的公式。原理是已知公元1年1月1日是星期一,计算任意日期与这一天之间一共有多少天,再判断是星期几。开始一直有问题,后来发现平年的2月应该是28天,而不是我写的30天,—_—#!

     1 import java.util.Scanner;
     2 public class Test {
     3     public static void main(String argv[]){
     4         while(true){
     5         System.out.println("请输入日期:");            
     6         Scanner sc=new Scanner(System.in);
     7         int y=sc.nextInt();
     8         int m=sc.nextInt();
     9         int d=sc.nextInt();    
    10         System.out.println("这一天是星期"+weekday(y, m, d));
    11         }
    12     }
    13     public static boolean isLeapYear(int year){
    14         boolean flag = false;
    15 
    16         if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0)
    17             flag = true;
    18         else
    19             flag = false;
    20         return flag;
    21     }
    22     
    23     public static String weekday(int year,int month,int day){
    24         long amount=0;
    25         for(int i=1;i<year;i++){
    26             if(isLeapYear(i))
    27                 amount++;
    28         }
    29         amount+=365*(year-1);
    30         for(int i=1;i<month;i++){
    31             amount+=daysofMonth(year, i);
    32         }
    33         amount+=day;
    34         int week=(int) (amount%7);        
    35         String w="";
    36         switch(week){
    37         case 0:w="日";break;
    38         case 1:w="一";break;
    39         case 2:w="二";break;
    40         case 3:w="三";break;
    41         case 4:w="四";break;
    42         case 5:w="五";break;        
    43         case 6:w="六";break;                
    44         }
    45         return w;        
    46     }
    47     private static int daysofMonth(int year,int month){        
    48         switch(month){
    49         case 1:
    50         case 3:
    51         case 5:
    52         case 7:
    53         case 8:
    54         case 10:
    55         case 12:return 31;
    56         case 4:
    57         case 6:
    58         case 9:
    59         case 11:return 30;
    60         case 2: if(isLeapYear(year))
    61             return 29;
    62         else
    63             return 28;
    64         default :return 0;
    65         }        
    66     }    
    67 }
  • 相关阅读:
    [Python 多线程] Concurrent (十五)
    [Python 多线程] GIL全局解释器锁 (十三)
    [Python 多线程] Semaphore、BounedeSemaphore (十二)
    自定义HandlerMethodArgumentResolver参数解析器和源码分析
    Dubbo分布式日志追踪
    kafka的分区分配策略
    深入剖析kafka架构内部原理
    kafka partition(分区)与 group
    Kafka消费组(consumer group)
    kafka存储机制以及offset
  • 原文地址:https://www.cnblogs.com/BeyondTime/p/2678540.html
Copyright © 2020-2023  润新知